ICU-22967 Remove the git lfs support: remove tools/multi

This commit is contained in:
Mihai Nita 2025-02-06 12:55:02 -08:00
parent d9505ae577
commit ddabf0faeb
113 changed files with 0 additions and 47449 deletions

View file

@ -1,7 +0,0 @@
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (c) 2008-2009 IBM Corp. and Others. All Rights Reserved
clean:
-rm -rf ./tmp

View file

@ -1,108 +0,0 @@
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (c) 2009-2013 IBM Corp. and Others. All Rights Reserved
# multicu/c makefile
all:
@echo To build all ICUs: $(MAKE) all-icus
@echo "Using the -k option may be a good idea if some are not building properly."
@echo ICUVERS: $(ICUVERS)
info:
#ICUCONF=sh ./configure
ICUCONF=$(MULTICU_ROOT)/c/superconf.sh
DOT=$(shell pwd)
MULTICU_ROOT=$(DOT)/..
include $(MULTICU_ROOT)/common/Makefile-multi.inc
-include Makefile.local
ICUVERS:=$(shell cd $(ICUS); ls icu4c*.tgz | cut -d- -f2 | sort | uniq | fgrep -v -f $(MULTICU_ROOT)/c/old-icu.txt)
ICU4JVERS:=$(shell cd $(ICUS); ls icu4j*.jar | cut -d- -f2 | cut -d. -f1 | sort | uniq | fgrep -v -f $(MULTICU_ROOT)/j/old-icu4j.txt)
BLD=$(C_BLD)
INS=$(C_INS)
SRC=$(C_SRC)
ALLICUS=$(ICUVERS:%=$(BLD)/%/$(S_BLD)) $(ICUVERS:%=$(BLD)/r%/$(S_BLD))
RICUS=$(ICUVERS:%=$(INS)/r%/$(S_INS))
IICUS=$(ICUVERS:%=$(INS)/%/$(S_INS)) $(RICUS)
APRECIOUS=$(ICUVERS:%=$(BLD)/%/$(S_SRC)) $(ICUVERS:%=$(BLD)/r%/$(S_SRC)) $(ICUVERS:%=$(BLD)/%/$(S_BLD)) $(ICUVERS:%=$(INS)/%/$(S_INS)) $(ICUVERS:%=$(BLD)/r%/$(S_BLD)) $(ICUVERS:%=$(INS)/r%/$(S_INS))
.PRECIOUS: $(APRECIOUS)
tehprecious:
echo $(APRECIOUS)
$(M_TMP) $(BLD) $(INS):
mkdir $(M_TMP)
mkdir $(BLD) $(SRC) $(INS)
$(INS)/%/$(S_INS): $(BLD)/%/$(S_BLD)
@if [ -f $(BLD)/$*/build.err ]; then echo '###' Error for $* stored in $(BLD)/$*/build.err - remove if you want me to retry; false; fi
( make $(MAKE_OPTS) -C $(BLD)/$*/icu/source 2>&1 all install | tee $(BLD)/$*/build.log ) || ( mv $(BLD)/$*/build.log $(BLD)/$*/build.err ; false )
touch -c $@
$(INS)/r%/$(S_INS): $(BLD)/r%/$(S_BLD)
@if [ -f $(BLD)/r$*/build.err ]; then echo '###' Error for $* stored in $(BLD)/r$*/build.err - remove if you want me to retry; false; fi
( make $(MAKE_OPTS) -C $(BLD)/r$*/icu/source 2>&1 all install | tee $(BLD)/r$*/build.log ) || ( mv $(BLD)/r$*/build.log $(BLD)/r$*/build.err ; false )
touch -c $@
$(BLD)/r%/$(S_SRC): $(ICUS)/icu4c-%-src.tgz
-mv $(BLD)/r$* $(BLD)/r$*.old
-( rm -rf ./$(BLD)/r$*.old& )
mkdir -p $(BLD)/r$*
( cd $(BLD)/r$* ; gunzip -d < $^ | tar xfp - )
([ -f $(DOT)/patch/$* ] && patch -d $(BLD)/r$* -p1 < $(DOT)/patch/$*) || true
touch -c $@
$(BLD)/%/$(S_SRC): $(ICUS)/icu4c-%-src.tgz
-mv $(BLD)/$* $(BLD)/$*.old
-( rm -rf ./$(BLD)/$*.old& )
mkdir -p $(BLD)/$*
( cd $(BLD)/$* ; gunzip -d < $^ | tar xfp - )
([ -f $(DOT)/patch/$* ] && patch -d $(BLD)/$* -p1 < $(DOT)/patch/$*) || true
touch -c $@
$(BLD)/r%/$(S_BLD): $(BLD)/r%/$(S_SRC)
-mkdir -p $(INS)
-chmod a+rx $(BLD)/r$*/icu/source/configure $(BLD)/r$*/icu/source/runConfigureICU
( cd $(BLD)/r$*/icu/source ; env CPPFLAGS="$(XTRA_RICU_CPPFLAGS)" `$(ICUCONF) "$(BLD)/r$*/icu/source" "$*"` --enable-renaming --enable-shared --disable-static --enable-release --disable-debug --prefix=$(INS)/r$* )
touch -c $@
$(BLD)/%/$(S_BLD): $(BLD)/%/$(S_SRC)
-mkdir -p $(INS)
-chmod a+rx $(BLD)/$*/icu/source/configure $(BLD)/$*/icu/source/runConfigureICU
( cd $(BLD)/$*/icu/source ; env CPPFLAGS="$(XTRA_ICU_CPPFLAGS)" `$(ICUCONF) "$(BLD)/$*/icu/source" "$*"` --disable-renaming --enable-shared --disable-static --enable-release --disable-debug --prefix=$(INS)/$* )
touch -c $@
$(INS)/%/bin/$(TARGET): $(INS)/%/$(S_INS) $(SRCS)
# Don't delete the built version.
# -rm -rf ./$(BLD)/$*/tmp
mkdir ./$(BLD)/$*/tmp
@for file in $(OBJECTS); \
do \
what=`basename $$file .o` ; \
echo compiling $*/$$what ; \
echo $(CXX) -c -o ./$(BLD)/$*/tmp/$$what.o $$what.cpp -I $(INS)/$*/include -I $(BLD)/$*/icu/source/tools/toolutil ; \
$(CXX) -c -o ./$(BLD)/$*/tmp/$$what.o $$what.cpp -I $(INS)/$*/include -I $(BLD)/$*/icu/source/tools/toolutil ; \
done
$(CXX) -o $@ $(OBJECTS:%.o=./$(BLD)/$*/tmp/%.o) -licudata -licuuc -licutu -licui18n -L$(INS)/$*/lib
foo:
echo $(ALLICUS)
allicus: $(BLD) $(ALLICUS)
all-icus: iicus
iicus: $(BLD) $(IICUS)
ricus: $(RICUS)

View file

@ -1,54 +0,0 @@
# -*- makefile -*-
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (c) 2008-2013 IBM Corp. and Others. All Rights Reserved
include $(MULTICU_ROOT)/common/Makefile-multi.inc
C_GOOD:=$(shell [ -d $(C_INS) ] && (cd $(C_INS) ; ls -d */$(S_INS) 2>/dev/null | cut -d/ -f1))
C_REL:=$(shell [ -d $(C_INS) ] && (cd $(C_INS) ; ls -d r*/$(S_INS) 2>/dev/null | cut -d/ -f1))
C_CLEAN_TARGET=$(C_GOOD:%=$(C_INS)/%/bin/$(TARGET))
SOURCES=$(C_SOURCES) $(CXX_SOURCES)
C_OBJECTS=$(C_SOURCES:%.c=%.o)
CXX_OBJECTS=$(CXX_SOURCES:%.cpp=%.o)
OBJECTS=$(C_OBJECTS) $(CXX_OBJECTS)
#DEBUGOPT=-g
# list of ICUs to be built
ICU_TARBALLS=$(shell cd $(ICUS) ; ls icu4c-*-src.tgz)
# list of versions ( form "3_8 4_0" etc. )
ICU_TARBALLS_VERS=$(ICU_TARBALLS:icu4c-%-src.tgz=%)
$(C_INS)/%/bin/$(TARGET): $(SOURCES) $(HEADERS)
-rm -rf $(C_INS)/$*/tmp
mkdir $(C_INS)/$*/tmp
ifneq (,$(CXX_OBJECTS))
@for file in $(CXX_OBJECTS); \
do \
what=`basename $$file .o` ; \
echo tools=$(C_BLD)/$*/icu/source/tools/toolutil ; \
echo compiling '(C++)' $*/$$what ; \
echo `$(C_INS)/$*/bin/icu-config --cxx` `$(C_INS)/$*/bin/icu-config --cxxflags` $(DEBUGOPT) -c -o $(C_INS)/$*/tmp/$$what.o $$what.cpp -I $(C_INS)/$*/include -I $(C_BLD)/$*/icu/source/tools/toolutil ; \
`$(C_INS)/$*/bin/icu-config --cxx` `$(C_INS)/$*/bin/icu-config --cxxflags` $(DEBUGOPT) -c -o $(C_INS)/$*/tmp/$$what.o $$what.cpp -I $(C_INS)/$*/include -I $(C_BLD)/$*/icu/source/tools/toolutil || \
$(CXX) $(DEBUGOPT) -c -o $(C_INS)/$*/tmp/$$what.o $${what}.cpp -I $(C_INS)/$*/include -I $(C_BLD)/$*/icu/source/tools/toolutil ; \
done
endif
ifneq (,$(C_OBJECTS))
@for file in $(C_OBJECTS); \
do \
what=`basename $$file .o` ; \
echo compiling '(C )' $*/$$what ; \
$(CC) $(DEBUGOPT) -c -o $(C_INS)/$*/tmp/$$what.o $${what}.c -I $(C_INS)/$*/include -I $(C_BLD)/$*/icu/source/tools/toolutil ; \
done
endif
@echo linking $*/$$what
@echo `$(C_INS)/$*/bin/icu-config --cxx` `$(C_INS)/$*/bin/icu-config --ldflags ` $(DEBUGOPT) -o $@ $(OBJECTS:%.o=$(C_INS)/$*/tmp/%.o) -licudata -licuuc -licutu -licui18n -licuio -L$(C_INS)/$*/lib
@`$(C_INS)/$*/bin/icu-config --cxx` -Wl,--verbose `$(C_INS)/$*/bin/icu-config --ldflags ` $(DEBUGOPT) -o $@ $(OBJECTS:%.o=$(C_INS)/$*/tmp/%.o) -licudata -licuuc -licutu -licui18n -licuio -L$(C_INS)/$*/lib || \
$(CXX) $(DEBUGOPT) -o $@ $(OBJECTS:%.o=$(C_INS)/$*/tmp/%.o) -licudata -licuuc -licutu -licui18n -licuio -L$(C_INS)/$*/lib

View file

@ -1,6 +0,0 @@
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (c) 2009 IBM Corp. and Others. All Rights Reserved
# a list of ICU4Cs too old to build with the current patchset.

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,21 +0,0 @@
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (c) 2008-2009 IBM Corp. and Others. All Rights Reserved
Only in 3_0/icu/source: bin
Only in 3_0.orig/icu/source: confdefs.h
diff -ru 3_0.orig/icu/source/config/mh-darwin 3_0/icu/source/config/mh-darwin
--- 3_0.orig/icu/source/config/mh-darwin 2008-10-20 14:57:52.000000000 -0700
+++ 3_0/icu/source/config/mh-darwin 2008-10-20 15:57:28.000000000 -0700
@@ -15,6 +15,8 @@
## Commands to generate dependency files
GEN_DEPS.c= $(CC) -E -MMD $(DEFS) $(CPPFLAGS)
GEN_DEPS.cc= $(CXX) -E -MMD $(DEFS) $(CPPFLAGS)
+GEN_DEPS.c= echo
+GEN_DEPS.cc= echo
## Commands to compile
COMPILE.c= $(CC) $(DEFS) $(CPPFLAGS) $(CFLAGS) -fno-common -c
Only in 3_0.orig/icu/source: config.cache
Only in 3_0.orig/icu/source: config.log

View file

@ -1,9 +0,0 @@
#!/bin/cat
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (c) 2009 IBM Corp. and Others. All Rights Reserved
#
Contains ICU4C patches to make old versions build.

View file

@ -1,70 +0,0 @@
#!/bin/sh
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (c) 2009 IBM Corp. and Others. All Rights Reserved
#
# Sample "super configure"
# this script is responsible for configuring ICU.
# input variables;
# $ICU_VER - the ICU version in underscore format (4_2_0_1)
ICU_SRC="$1"
ICU_VER="$2"
U_HOST=`hostname`
U_SYS=`uname || echo unknown`
#echo $HOST
export rcs=none
case $U_SYS in
AIX)
# the preferred 'AIX' type to use
AIX=AIX
case $ICU_VER in
4*)
#AIX=AIX4.3VA
AIX=AIX
;;
*)
AIX=AIX4.3VA
;;
1*|2*|3_0*|3_1*)
AIX=AIX4.3xlC
PATH=/usr/vacpp/bin/:$PATH
;;
esac
rcs=${AIX}
;;
*)
rcs=none
;;
esac
case $HOST in
sys98*)
rcs=$AIX
;;
hp*)
rcs='HP-UX/ACC'
;;
merill*|redhat*|sunlight*)
rcs='LinuxRedHat'
;;
*)
echo sh ${ICU_SRC}/configure
#echo Unknown host $HOST, edit $0
exit 0
;;
esac
echo sh ${ICU_SRC}/runConfigureICU "${rcs}"

View file

@ -1,26 +0,0 @@
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (c) 2008-2009 IBM Corp. and Others. All Rights Reserved
C_ROOT=$(MULTICU_ROOT)/c
J_ROOT=$(MULTICU_ROOT)/j
M_TMP=$(MULTICU_ROOT)/tmp
C_INS=$(M_TMP)/ins
C_BLD=$(M_TMP)/build
C_SRC=$(M_TMP)/src
# C defs
S_INS=include/unicode/utypes.h
S_SRCDIR=icu/source
S_BLD=$(S_SRCDIR)/config.status
S_SRC=$(S_SRCDIR)/configure
-include $(MULTICU_ROOT)/common/Makefile-local.inc
ICUS=$(MULTICU_ROOT)/packages
TOP=$(shell pwd)
# J defs

View file

@ -1,12 +0,0 @@
# -*- makefile -*-
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (c) 2008-2013 IBM Corp. and Others. All Rights Reserved
include $(MULTICU_ROOT)/common/Makefile-multi.inc
ICUS=$(MULTICU_ROOT)/packages
J_GOOD:=$(shell [ -d $(ICUS) ] && (cd $(ICUS) ; ls -d icu4j-*.jar | cut -d- -f2 | cut -d. -f1))
#J_GOOD=$(ICU4JVERS:%=$(ICUS)/icu4j-%.jar)

View file

@ -1,56 +0,0 @@
#!/bin/sh
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (c) 2008-2013 IBM Corp. and Others. All Rights Reserved
if [ ! -x $1 ];
then
echo usage: $0 path/to/bin/java
exit 1
fi
if ! $1 -version > /dev/null ;
then
echo could not run $1
exit 2
fi
if ! ( $1 -version 2>&1 | grep -q "java version" );
then
echo could not get java version from $1
exit 3
fi
VER=`$1 -version 2>&1 | grep "java version" | head -1 | sed -e 's%^java version "\([^"]*\)\".*$%\1%'`
VERD=`echo $VER | tr . _`
echo $1 = $VER / $VERD
FILE="$VERD.sh"
if [ -f $FILE ];
then
FILE="${VERD}_$$.sh"
echo "$VERD.sh existed, renaming to $FILE - rename to something sane if you want"
fi
JHOME=`dirname $1`
JHOME=`dirname $JHOME`
echo "#!/bin/sh" > $FILE
echo "# auto generated for $VER from $1 / addjava.sh" >> $FILE
echo "JAVA_HOME=$JHOME" >> $FILE
echo >> $FILE
echo >> $FILE
$1 -version 2>&1 | sed -e 's%^%#%' >> $FILE
chmod a+rx $FILE
echo
echo "Created: $FILE"

View file

@ -1,8 +0,0 @@
#!/bin/sh
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (c) 2008-2013 IBM Corp. and Others. All Rights Reserved
set -x
rm *.jvm.sh

View file

@ -1,36 +0,0 @@
#!/bin/sh
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (c) 2008-2013 IBM Corp. and Others. All Rights Reserved
VER=/System/Library/Frameworks/JavaVM.framework/Versions
if [ ! -d "${VER}" ];
then
echo err, cant find ${VER} - are you really on a mac?
exit 1
fi
VERS=`cd ${VER};ls -d [0-9]*`
for aver in ${VERS};
do
if [ ! -x ${VER}/${aver}/Home/bin/java ]; then
continue
fi
if ! ${VER}/${aver}/Home/bin/java -version 2> /dev/null; then
continue
fi
VERNUM=`echo "${aver}" | tr '.' '_'`
F=${VERNUM}.jvm.sh
echo "# ${F} from ${VER}/${aver}"
cat > ${F} <<EOF
JAVA_HOME=${VER}/${aver}/Home
EOF
chmod a+rx ${F}
if ! ./test.sh ${F}; then
rm ${F}
echo "# Deleted: ${F} due to failure"
fi
done

View file

@ -1,22 +0,0 @@
#!/bin/sh
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (c) 2008-2013 IBM Corp. and Others. All Rights Reserved
if [ ! -x ${1} ];
then
echo could not exec ${1}
echo usage: ${0} something.jvm.sh blah
exit 1
fi
#JAVA_HOME=/somewhere/1_6
JAVA=java
#CLASSPATH=foo/bar.jar:/baz
#VM_OPTS=-Xmx265
. "${1}"
set -x
${JAVA_HOME}/bin/${JAVA} ${VM_OPTS} -classpath ${CLASSPATH}:${2} ${3}

View file

@ -1,25 +0,0 @@
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (c) 2008-2013 IBM Corp. and Others. All Rights Reserved
Put '.sh' files in this dir , locally, to be used for Java version bringup
See addjava below
ex: '1_6.sh'
------
JAVA_HOME=/somewhere/1_6
#JAVA=java
#CLASSPATH=foo/bar.jar:/baz
#VM_OPTS=-Xmx265
-----
You can use the addjava.sh tool, like this - give it the full path to 'java':
$ addjava.sh /opt/IBM-JDK-1.5/bin/java
Created 1_5.sh
IF 1_5.sh alreday exists, a random number will be added to the name of the new file.

View file

@ -1,16 +0,0 @@
#!/bin/sh
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (c) 2008-2013 IBM Corp. and Others. All Rights Reserved
if [ ! -x ${1} ];
then
echo could not exec ${1}
echo usage: ${0} something.sh
exit 1
fi
set -x
. "${1}"
${JAVA_HOME}/bin/java -version 2>/dev/null

View file

@ -1,6 +0,0 @@
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (c) 2009 IBM Corp. and Others. All Rights Reserved
# a list of ICU4Cs too old to build with the current patchset.

View file

@ -1,55 +0,0 @@
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (c) 2008-2009 IBM Corp. and Others. All Rights Reserved
# Makefile for multicu/sample/chello
# C/C++ hello
## Name of the app
TARGET=chello
## Sources list (C and C++ just to be difficult)
C_SOURCES=date.c
CXX_SOURCES=uprint.cpp
SRCS=$(C_SOURCES) $(CXX_SOURCES)
HEADERS=uprint.h
all:
@echo To build and list "'" $(OUTFILES) "'" in "'" $(C_GOOD) "'" use "$(MAKE) check"
## Setup multicu
MULTICU_ROOT=../../
include $(MULTICU_ROOT)/c/Makefile-c.inc
OUT=out
$(OUT):
mkdir $(OUT)
## The output files. Will result in: out/3_8.txt out/4_0.txt etc.
OUTFILES=$(C_GOOD:%=$(OUT)/%.txt)
.PRECIOUS: $(C_CLEAN_TARGET)
## Generate a file
$(OUT)/%.txt: $(OUT) $(C_INS)/%/bin/$(TARGET)
$(shell $(C_INS)/$*/bin/icu-config --invoke) $(C_INS)/$*/bin/$(TARGET) > $@
## clean
clean:
-rm -f $(C_CLEAN_TARGET)
-rm -f ./$(OUT)/*
-rmdir $(OUT)
## Just generate
outfiles: $(OUTFILES)
## Test: generate out files, and print them.
check: $(OUTFILES)
@for file in $(OUTFILES); \
do \
echo; \
sed -e "s%^%$$file: %g" < $$file; \
done

View file

@ -1,207 +0,0 @@
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
**********************************************************************
* Copyright (C) 1998-2009, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
*
* File date.c
*
* Modification History:
*
* Date Name Description
* 06/11/99 stephen Creation.
* 06/16/99 stephen Modified to use uprint.
*******************************************************************************
*/
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "unicode/utypes.h"
#include "unicode/ustring.h"
#include "unicode/uclean.h"
#include "unicode/ucnv.h"
#include "unicode/udat.h"
#include "unicode/ucal.h"
#include "uprint.h"
int main(int argc, char **argv);
#if UCONFIG_NO_FORMATTING
int main(int argc, char **argv)
{
printf("%s: Sorry, UCONFIG_NO_FORMATTING was turned on (see uconfig.h). No formatting can be done. \n", argv[0]);
return 0;
}
#else
/* Protos */
static void usage(void);
static void version(void);
static void date(const UChar *tz, UDateFormatStyle style, char *format, UErrorCode *status);
/* The version of date */
#define DATE_VERSION "1.0"
/* "GMT" */
static const UChar GMT_ID [] = { 0x0047, 0x004d, 0x0054, 0x0000 };
int
main(int argc,
char **argv)
{
int printUsage = 0;
int printVersion = 0;
int optind = 1;
char *arg;
const UChar *tz = 0;
UDateFormatStyle style = UDAT_DEFAULT;
UErrorCode status = U_ZERO_ERROR;
char *format = NULL;
/* parse the options */
for(optind = 1; optind < argc; ++optind) {
arg = argv[optind];
/* version info */
if(strcmp(arg, "-v") == 0 || strcmp(arg, "--version") == 0) {
printVersion = 1;
}
/* usage info */
else if(strcmp(arg, "-h") == 0 || strcmp(arg, "--help") == 0) {
printUsage = 1;
}
/* display date in gmt */
else if(strcmp(arg, "-u") == 0 || strcmp(arg, "--gmt") == 0) {
tz = GMT_ID;
}
/* display date in gmt */
else if(strcmp(arg, "-f") == 0 || strcmp(arg, "--full") == 0) {
style = UDAT_FULL;
}
/* display date in long format */
else if(strcmp(arg, "-l") == 0 || strcmp(arg, "--long") == 0) {
style = UDAT_LONG;
}
/* display date in medium format */
else if(strcmp(arg, "-m") == 0 || strcmp(arg, "--medium") == 0) {
style = UDAT_MEDIUM;
}
/* display date in short format */
else if(strcmp(arg, "-s") == 0 || strcmp(arg, "--short") == 0) {
style = UDAT_SHORT;
}
else if(strcmp(arg, "-F") == 0 || strcmp(arg, "--format") == 0) {
if ( optind + 1 < argc ) {
optind++;
format = argv[optind];
}
}
/* POSIX.1 says all arguments after -- are not options */
else if(strcmp(arg, "--") == 0) {
/* skip the -- */
++optind;
break;
}
/* unrecognized option */
else if(strncmp(arg, "-", strlen("-")) == 0) {
printf("icudate: invalid option -- %s\n", arg+1);
printUsage = 1;
}
/* done with options, display date */
else {
break;
}
}
/* print usage info */
if(printUsage) {
usage();
return 0;
}
/* print version info */
if(printVersion) {
version();
return 0;
}
/* print the date */
date(tz, style, format, &status);
u_cleanup();
return (U_FAILURE(status) ? 1 : 0);
}
/* Usage information */
static void
usage()
{
puts("Usage: icudate [OPTIONS]");
puts("Options:");
puts(" -h, --help Print this message and exit.");
puts(" -v, --version Print the version number of date and exit.");
puts(" -u, --gmt Display the date in Greenwich Mean Time.");
puts(" -f, --full Use full display format.");
puts(" -l, --long Use long display format.");
puts(" -m, --medium Use medium display format.");
puts(" -s, --short Use short display format.");
}
/* Version information */
static void
version()
{
printf("icudate version %s (ICU version %s), created by Stephen F. Booth.\n",
DATE_VERSION, U_ICU_VERSION);
puts(U_COPYRIGHT_STRING);
}
/* Format the date */
static void
date(const UChar *tz,
UDateFormatStyle style,
char *format,
UErrorCode *status)
{
UChar *s = 0;
int32_t len = 0;
UDateFormat *fmt;
UChar uFormat[100];
fmt = udat_open(style, style, 0, tz, -1,NULL,0, status);
if ( format != NULL ) {
u_charsToUChars(format,uFormat,strlen(format)),
udat_applyPattern(fmt,false,uFormat,strlen(format));
}
len = udat_format(fmt, ucal_getNow(), 0, len, 0, status);
if(*status == U_BUFFER_OVERFLOW_ERROR) {
*status = U_ZERO_ERROR;
s = (UChar*) malloc(sizeof(UChar) * (len+1));
if(s == 0) goto finish;
udat_format(fmt, ucal_getNow(), s, len + 1, 0, status);
if(U_FAILURE(*status)) goto finish;
}
/* print the date string */
uprint(s, stdout, status);
/* print a trailing newline */
printf(" @ ICU " U_ICU_VERSION "\n");
finish:
udat_close(fmt);
free(s);
}
#endif

View file

@ -1,78 +0,0 @@
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
**********************************************************************
* Copyright (C) 1998-2009, International Business Machines Corporation
* and others. All Rights Reserved.
**********************************************************************
*
* File uprint.cpp
*
* Modification History:
*
* Date Name Description
* 06/14/99 stephen Creation.
*******************************************************************************
*/
#include "uprint.h"
#include "unicode/ucnv.h"
#include "unicode/ustring.h"
#define BUF_SIZE 128
/* Print a ustring to the specified FILE* in the default codepage */
U_CAPI void
uprint(const char16_t *s,
FILE *f,
UErrorCode *status)
{
/* converter */
UConverter *converter;
char buf [BUF_SIZE];
int32_t sourceLen;
const char16_t *mySource;
const char16_t *mySourceEnd;
char *myTarget;
int32_t arraySize;
if(s == 0) return;
/* set up the conversion parameters */
sourceLen = u_strlen(s);
mySource = s;
mySourceEnd = mySource + sourceLen;
myTarget = buf;
arraySize = BUF_SIZE;
/* open a default converter */
converter = ucnv_open(0, status);
/* if we failed, clean up and exit */
if(U_FAILURE(*status)) goto finish;
/* perform the conversion */
do {
/* reset the error code */
*status = U_ZERO_ERROR;
/* perform the conversion */
ucnv_fromUnicode(converter, &myTarget, myTarget + arraySize,
&mySource, mySourceEnd, nullptr,
true, status);
/* Write the converted data to the FILE* */
fwrite(buf, sizeof(char), myTarget - buf, f);
/* update the conversion parameters*/
myTarget = buf;
arraySize = BUF_SIZE;
}
while(*status == U_BUFFER_OVERFLOW_ERROR);
finish:
/* close the converter */
ucnv_close(converter);
}

View file

@ -1,28 +0,0 @@
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
**********************************************************************
* Copyright (C) 1998-2009, International Business Machines Corporation
* and others. All Rights Reserved.
**********************************************************************
*
* File uprint.h
*
* Modification History:
*
* Date Name Description
* 06/14/99 stephen Creation.
*******************************************************************************
*/
#ifndef UPRINT_H
#define UPRINT_H 1
#include <stdio.h>
#include "unicode/utypes.h"
/* Print a ustring to the specified FILE* in the default codepage */
U_CFUNC void uprint(const UChar *s, FILE *f, UErrorCode *status);
#endif /* ! UPRINT_H */

View file

@ -1,130 +0,0 @@
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved.
MULTICU_ROOT=../../
include $(MULTICU_ROOT)/common/Makefile-multi.inc
XML=./xml
JXML=./jxml
JVMXML=./jvmxml
COOKED=cooked
INPUT=input
INTROXMLS=$(wildcard $(INPUT)/*-introduction.xml)
FEATXMLS=$(INTROXMLS:$(INPUT)/%-introduction.xml=$(COOKED)/%-cooked.xml) $(COOKED)/characters.xml
ALLCOOKED=cooked/features.xml
# java stuff
MergerName=Merger
PropagateName=PropagateFeatures
PropagateCharsName=PropagateCharacters
MergerPackage=com.ibm.icu.dev.meta
MergerPackageSlash=$(subst .,/,$(MergerPackage))
## ICUMETA=/xsrl/E/data/meta (in Makefile.local)
MergerLib=$(ICUMETA)/lib
MergerJar=$(ICUMETA)/icumeta.jar
#was: $(ICUMETA)/classes
MergerClassPath=$(shell ls $(MergerLib)/*.jar | tr '\n' ':')$(MergerJar):$(OTHERJARS)
include Makefile.local
MergerBuild=$(ICUMETA)/build.xml
#MergerClass=$(ICUMETA)/classes/$(MergerPackageSlash)/$(MergerName).class
#MergerJava=$(ICUMETA)/src/$(MergerPackageSlash)/$(MergerName).java
#BASEXMLS=$(ICUMETA)/xml/icumeta.xml
BASEXMLS=$(ICUMETA)/input/versions.xml
APRECIOUS=$(ICUVERS:%=$(BLD)/%/$(S_SRC)) $(ICUVERS:%=$(BLD)/%/$(S_BLD)) $(ICUVERS:%=$(INS)/%/$(S_INS))
all: icucaps.xml
.PRECIOUS: $(APRECIOUS)
tehprecious:
echo $(APRECIOUS)
$(MergerJar):
( cd $(ICUMETA) ; ant jar )
$(BLD):
-mkdir $(BLD)
$(XML):
-mkdir $(XML)
$(JXML):
-mkdir $(JXML)
$(JVMXML):
-mkdir $(JXML)
ifeq ($(JVMSH),)
JVMSH_WARN=warn-jvmsh
warn-jvmsh:
@echo "Note: No $(JVM)/*$(JVM_CFG) files found, see $(JVM)/readme.txt"
endif
DTDCACHE=$(shell pwd)/dtdcache
DTDTMP=$(shell pwd)/dtdtmp
DTDOVR=$(ICUMETA)/dtd
JAVADEBUG=-DCLDR_DTD_CACHE_DEBUG=n -DCLDR_DTD_CACHE_ADEBUG=n
JAVAPROPS= -DCLDR_DTD_CACHE=$(DTDCACHE) -DCLDR_DTD_OVERRIDE=$(DTDOVR) -DICU_DTD_CACHE=$(DTDCACHE) -DICU_DTD_OVERRIDE=$DTDOVR
#//$(DTD)/Makefile: $(ICUMETA)/dtd/Makfile
#// ln -s $^ $@
#//
#//dtd/icucaps.dtd: $(DTD)/Makefile dtd/icucaps.rnc
#// make -C $(DTD)
ICUMETA_XML=$(ICUMETA)/xml/icumeta.xml
BASE_VERSION=$(COOKED)/allversions.xml
BASE_SOURCE=$(BASEXMLS) $(INPUT)/java.xml
#$(ICUMETA)/xml/icumeta.xml: $(MergerBuild)
# ( cd $(ICUMETA) ; ant xml )
ALLXMLS=$(wildcard $(XML)/*.xml $(JXML)/*.xml $(JVMXML)/*.xml)
allxmls: $(XML) $(JXML) $(JVMXML)
$(MAKE) -f Makefile_c outfiles
$(MAKE) -f Makefile_j outfiles
featxmls: $(FEATXMLS)
allcooked: $(ALLCOOKED)
$(COOKED):
-mkdir $(COOKED)
$(BASE_VERSION): $(BASE_SOURCE) $(MergerJar) | $(COOKED)
-rm -rf ./dtdcache
mkdir dtdcache
java $(JAVAPROPS) -classpath $(MergerClassPath) $(MergerPackage).$(MergerName) -v -o:$@ $(BASE_SOURCE)
$(ALLCOOKED): $(FEATXMLS) $(MergerJar)
-rm -rf ./dtdcache
mkdir dtdcache
java $(JAVAPROPS) -classpath $(MergerClassPath) $(MergerPackage).$(MergerName) -v -o:$@ $(FEATXMLS)
$(COOKED)/%-cooked.xml: $(BASE_VERSION) $(INPUT)/%-introduction.xml $(MergerJar) | $(COOKED)
-rm -rf ./dtdcache
mkdir dtdcache
java $(JAVAPROPS) -classpath $(MergerClassPath) $(MergerPackage).$(PropagateName) $(BASE_VERSION) $(INPUT)/$*-introduction.xml > $(COOKED)/$*-cooked.xml
$(COOKED)/characters.xml: $(ALLXMLS) $(COOKED)/junicode-cooked.xml $(MergerJar)
java $(JAVAPROPS) -classpath $(MergerClassPath) $(MergerPackage).$(PropagateCharsName) > $@ $(ALLXMLS) $(COOKED)/junicode-cooked.xml || (rm ./$@ ; false)
icucaps.xml: allxmls $(BASE_VERSION) $(ALLXMLS) $(MergerJar) $(ALLCOOKED)
-rm -rf ./dtdcache
mkdir dtdcache
# -rm -rf ./dtdtmp
# mkdir dtdtmp
# ln -s $(ICUMETA)/dtd/*.dtd ./dtdtmp/
# ln -s ./dtd/*.dtd ./dtdtmp/
java $(JAVAPROPS) -classpath $(MergerClassPath) $(MergerPackage).$(MergerName) -v -o:$@ $(BASE_VERSION) $(ALLXMLS) $(ALLJXMLS) $(ALLCOOKED)

View file

@ -1,27 +0,0 @@
# -*- makefile -*-
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved.
## --- important ---
# Path to http://source.icu-project.org/repos/icu/data/trunk/meta
ICUMETA=/xsrl/E/data/meta
## --- all others are optional ---
# if needed - additional jars on the CLASSPATH
#OTHERJARS=somejar.jar:some/other/jar.jar
# if needed - force path to ICUJAR
#ICUJAR=.../icu.jar
#Special make options
#MAKE_OPTS=-j2

View file

@ -1,51 +0,0 @@
# -*- makefile -*-
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (C) 2008-2013 IBM Corporation and Others. All Rights Reserved.
CPPFLAGS+=-DU_DISABLE_RENAMING=1 -I. -I/xsrl/IIE/include -I/xsrl/E/icu/source/tools/toolutil
# TODO - where to get uoptions.h?
OBJECTS=testxml.o xmlout.o
CXX_SOURCES:=$(OBJECTS:%.o=%.cpp)
C_SOURCES=
HEADERS=xmlout.h
TARGET=testxml
all:
@echo To build and list "'" $(OUTFILES) "'" in "'" $(C_GOOD) "'" use "$(MAKE) check"
MULTICU_ROOT=../../
include $(MULTICU_ROOT)/c/Makefile-c.inc
OUT=./xml
$(OUT):
mkdir $(OUT)
OUTFILES=$(C_GOOD:%=$(OUT)/%.xml)
.PRECIOUS: $(C_CLEAN_TARGET)
## Generate a file
$(OUT)/%.xml: $(OUT) $(C_INS)/%/bin/$(TARGET)
$(shell $(C_INS)/$*/bin/icu-config --invoke) $(C_INS)/$*/bin/$(TARGET) > $@
## clean
clean:
-rm -f $(C_CLEAN_TARGET)
-rm -f ./$(OUT)/*
-rmdir $(OUT)
## Just generate
outfiles: $(OUTFILES)
## Test: generate out files, and print them.
check: $(OUTFILES)
@for file in $(OUTFILES); \
do \
echo; \
sed -e "s%^%$$file: %g" < $$file; \
done

View file

@ -1,227 +0,0 @@
# -*- makefile -*-
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (C) 2012 IBM Corporation and Others. All Rights Reserved.
## Name of the app
TARGET=icu4jscan
all:
@echo To build and list "'" $(OUTFILES) "'" in "'" $(J_GOOD) "'" use "$(MAKE) check"
## Setup multicu
MULTICU_ROOT=../../
include $(MULTICU_ROOT)/j/Makefile-j.inc
## The output files. Will result in: out/3_8.txt out/4_0.txt etc.
OUT=jxml
OUTFILES=$(J_GOOD:%=$(OUT)/%.txt)
.PRECIOUS: $(C_CLEAN_TARGET)
## Generate a file
$(OUT)/%.txt: $(OUT) $(C_INS)/%/bin/$(TARGET)
$(shell $(C_INS)/$*/bin/icu-config --invoke) $(C_INS)/$*/bin/$(TARGET) > $@
## clean
clean:
-rm -f $(C_CLEAN_TARGET)
-rm -f ./$(OUT)/*
-rmdir $(OUT)
## Test: generate out files, and print them.
check: $(OUTFILES)
@for file in $(OUTFILES); \
do \
echo; \
sed -e "s%^%$$file: %g" < $$file; \
done
MULTICU_ROOT=../../
include $(MULTICU_ROOT)/common/Makefile-multi.inc
XML=./xml
JVMXML=./jvmxml
JVM=$(MULTICU_ROOT)/j/jvm
JVM_CFG=.sh
JVMSH:=$(wildcard $(JVM)/[0-9]*$(JVM_CFG))
ALLICUS=$(ICUVERS:%=$(BLD)/%/$(S_BLD))
IICUS=$(ICUVERS:%=$(INS)/%/$(S_INS))
ALLAPPS=$(ICUVERS:%=$(INS)/%/bin/$(TARGET))
ALLXMLS=$(ICUVERS:%=$(XML)/%.xml)
COOKED=cooked
INPUT=input
INTROXMLS=$(wildcard $(INPUT)/*-introduction.xml)
FEATXMLS=$(INTROXMLS:$(INPUT)/%-introduction.xml=$(COOKED)/%-cooked.xml) $(COOKED)/characters.xml
ALLCOOKED=cooked/features.xml
JXML=./jxml
#ICU4JVERS
ALLICU4JS=$(ICU4JVERS:%=$(ICUS)/icu4j-%.jar)
ALLJXMLS=$(J_GOOD:%=$(JXML)/%.xml)
JSCAN=ScanICU
alljxmls: $(JXML) $(ALLJXMLS)
JSCANDIR=../icu4jscan
JCLASSFILE=$(JSCANDIR)/bin/com/ibm/icu/dev/scan/$(JSCAN).class
JScanPackage=com.ibm.icu.dev.scan
ALLJVM=$(JVMSH:$(JVM)/%$(JVM_CFG)=%)
ALLJVMXMLS=$(ALLJVM:%=$(JVMXML)/%.xml)
JVMSCAN=ScanJava
alljvmxmls: $(JVMXML) $(ALLJVMXMLS)
JVMCLASSFILE=$(JSCANDIR)/bin/com/ibm/icu/dev/scan/$(JVMSCAN).class
# java stuff
JAVA=java
MergerName=Merger
PropagateName=PropagateFeatures
PropagateCharsName=PropagateCharacters
MergerPackage=com.ibm.icu.dev.meta
MergerPackageSlash=$(subst .,/,$(MergerPackage))
## ICUMETA=/xsrl/E/data/meta (in Makefile.local)
MergerLib=$(ICUMETA)/lib
MergerJar=$(ICUMETA)/icumeta.jar
#was: $(ICUMETA)/classes
MergerClassPath=$(shell ls $(MergerLib)/*.jar | tr '\n' ':')$(MergerJar):$(OTHERJARS)
include Makefile.local
MergerBuild=$(ICUMETA)/build.xml
#MergerClass=$(ICUMETA)/classes/$(MergerPackageSlash)/$(MergerName).class
#MergerJava=$(ICUMETA)/src/$(MergerPackageSlash)/$(MergerName).java
#BASEXMLS=$(ICUMETA)/xml/icumeta.xml
BASEXMLS=$(ICUMETA)/input/versions.xml
APRECIOUS=$(ICUVERS:%=$(BLD)/%/$(S_SRC)) $(ICUVERS:%=$(BLD)/%/$(S_BLD)) $(ICUVERS:%=$(INS)/%/$(S_INS))
.PRECIOUS: $(APRECIOUS)
tehprecious:
echo $(APRECIOUS)
$(MergerJar):
( cd $(ICUMETA) ; ant jar )
$(BLD):
-mkdir $(BLD)
$(INS)/%/$(S_INS): $(BLD)/%/$(S_BLD)
@if [ -f $(BLD)/$*/build.err ]; then echo Error for $* stored in $(BLD)/$*/build.err; false; fi
( make $(MAKE_OPTS) -C $(BLD)/$*/icu/source 2>&1 all install | tee $(BLD)/$*/build.log ) || ( mv $(BLD)/$*/build.log $(BLD)/$*/build.err ; false )
touch -c $@
$(BLD)/%/$(S_SRC): $(ICUS)/icu4c-%-src.tgz
-mv $(BLD)/$* $(BLD)/$*.old
-( rm -rf ./$(BLD)/$*.old& )
mkdir -p $(BLD)/$*
( cd $(BLD)/$* ; tar xfpz $(DOT)/$^ )
([ -f patch/$* ] && patch -d $(BLD)/$* -p1 < $(DOT)/patch/$*) || true
touch -c $@
$(BLD)/%/$(S_BLD): $(BLD)/%/$(S_SRC)
-mkdir -p $(INS)
( cd $(BLD)/$*/icu/source ; ./configure --disable-renaming --enable-shared --disable-static --enable-release --disable-debug --prefix=$(DOT)/$(INS)/$* )
touch -c $@
$(INS)/%/bin/$(TARGET): $(INS)/%/$(S_INS) $(SRCS)
-rm -rf ./$(BLD)/$*/tmp
mkdir ./$(BLD)/$*/tmp
@for file in $(OBJECTS); \
do \
what=`basename $$file .o` ; \
echo compiling $*/$$what ; \
$(CXX) -c -o ./$(BLD)/$*/tmp/$$what.o $$what.cpp -I $(INS)/$*/include -I $(BLD)/$*/icu/source/tools/toolutil ; \
done
$(CXX) -o $@ $(OBJECTS:%.o=./$(BLD)/$*/tmp/%.o) -licudata -licuuc -licutu -licui18n -L$(INS)/$*/lib
$(XML):
mkdir $(XML)
$(JXML):
mkdir $(JXML)
ifeq ($(JVMSH),)
JVMSH_WARN=warn-jvmsh
warn-jvmsh:
@echo "Note: No $(JVM)/*$(JVM_CFG) files found, see $(JVM)/readme.txt"
endif
$(JVMXML):
mkdir $(JVMXML)
$(XML)/%.xml: $(INS)/%/bin/$(TARGET) $(XML)
$(shell $(INS)/$*/bin/icu-config --invoke) $(INS)/$*/bin/$(TARGET) > $@
allxmls: $(ALLXMLS) | $(OUT)
alljvmxmls: $(ALLJVMXMLS) $(JVMSH_WARN) | $(JVMXML)
allapps: $(BLD) $(ALLAPPS)
allicus: $(BLD) $(ALLICUS)
clean-allapps:
-rm -f $(ALLAPPS)
iicus: $(BLD) $(IICUS)
DTDCACHE=$(shell pwd)/dtdcache
DTDTMP=$(shell pwd)/dtdtmp
DTDOVR=$(ICUMETA)/dtd
JAVADEBUG=-DCLDR_DTD_CACHE_DEBUG=n -DCLDR_DTD_CACHE_ADEBUG=n
JAVAPROPS= -DCLDR_DTD_CACHE=$(DTDCACHE) -DCLDR_DTD_OVERRIDE=$(DTDOVR) -DICU_DTD_CACHE=$(DTDCACHE) -DICU_DTD_OVERRIDE=$DTDOVR
#//$(DTD)/Makefile: $(ICUMETA)/dtd/Makfile
#// ln -s $^ $@
#//
#//dtd/icucaps.dtd: $(DTD)/Makefile dtd/icucaps.rnc
#// make -C $(DTD)
ICUMETA_XML=$(ICUMETA)/xml/icumeta.xml
#$(ICUMETA)/xml/icumeta.xml: $(MergerBuild)
# ( cd $(ICUMETA) ; ant xml )
featxmls: $(FEATXMLS)
allcooked: $(ALLCOOKED)
$(ALLCOOKED): $(FEATXMLS) $(MergerJar)
-rm -rf ./dtdcache
mkdir dtdcache
$(JAVA) $(JAVAPROPS) -classpath $(MergerClassPath) $(MergerPackage).$(MergerName) -v -o:$@ $(FEATXMLS)
$(COOKED)/%-cooked.xml: $(ICUMETA_XML) $(INPUT)/%-introduction.xml $(MergerJar)
-rm -rf ./dtdcache
mkdir dtdcache
$(JAVA) $(JAVAPROPS) -classpath $(MergerClassPath) $(MergerPackage).$(PropagateName) $(ICUMETA_XML) $(INPUT)/$*-introduction.xml > $(COOKED)/$*-cooked.xml
$(COOKED)/characters.xml: $(ALLJXMLS) $(ALLXMLS) $(MergerJar)
$(JAVA) $(JAVAPROPS) -classpath $(MergerClassPath) $(MergerPackage).$(PropagateCharsName) > $@ $(ALLJXMLS) $(ALLXMLS) || (rm ./$@ ; false)
icucaps.xml: $(BASEXMLS) $(ALLJXMLS) $(ALLXMLS) $(MergerJar) $(ALLCOOKED)
-rm -rf ./dtdcache
mkdir dtdcache
# -rm -rf ./dtdtmp
# mkdir dtdtmp
# ln -s $(ICUMETA)/dtd/*.dtd ./dtdtmp/
# ln -s ./dtd/*.dtd ./dtdtmp/
$(JAVA) $(JAVAPROPS) -classpath $(MergerClassPath) $(MergerPackage).$(MergerName) -v -o:$@ $(BASEXMLS) $(ALLXMLS) $(ALLJXMLS) $(ALLCOOKED)
# --- J
$(JXML)/%.xml: $(JCLASSFILE) $(ICUS)/icu4j-%.jar | $(JXML)
$(JAVA) -classpath $(JSCANDIR)/bin:$(ICUS)/icu4j-$*.jar:$(JSCANDIR)/lib/icumeta.jar:$(JSCANDIR)/lib/xalan.jar:$(JSCANDIR)/lib/cldr.jar:$(JSCANDIR)/lib/utilities.jar:$(MergerJar):$(MergerLib)/utilities.jar:$(MergerLib)/cldr.jar:$(JSCANDIR)/lib/xerces.jar:$(OTHERJARS) $(JScanPackage).$(JSCAN) > $@ || (rm -f ./$@ ; false)
$(JVMXML)/%.xml: $(JVMCLASSFILE) $(JVM)/%$(JVM_CFG) | $(JVMXML)
$(JVM)/invoke.sh $(JVM)/$*$(JVM_CFG) $(JSCANDIR)/bin:$(ICUS)/icu4j-$*.jar:$(JSCANDIR)/lib/icumeta.jar:$(JSCANDIR)/lib/xalan.jar:$(JSCANDIR)/lib/cldr.jar:$(MergerJar):$(MergerJar):$(MergerLib)/utilities.jar:$(MergerLib)/cldr.jar:$(JSCANDIR)/lib/utilities.jar:$(JSCANDIR)/lib/xerces.jar:$(OTHERJARS) $(JScanPackage).$(JVMSCAN) > $@ || (rm ./$@ ; false)
## Just generate
outfiles: $(XML) $(JXML) $(ALLJXMLS) $(ALLJVMXMLS)

View file

@ -1,16 +0,0 @@
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved. -->
element capabilities
{
element feature
{
attribute type {text },
attribute total {text}?,
attribute version {text},
text
}*
}

File diff suppressed because it is too large Load diff

View file

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2008-2012 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="java">
<names>
<name type="full">Java</name>
<name type="short">Java</name>
</names>
<releases>
<release version="1.3.1"/>
<release version="1.4.2"/>
<release version="1.5.0"/>
<release version="1.6.0"/>
<release version="1.7.0"/>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,29 +0,0 @@
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved. -->
<icuInfo>
<icuProducts>
<icuProduct type="java">
<releases>
<release version="1.4.2">
<capabilities>
<feature type="layout">
Arab Hebr Thai Beng Deva Gujr Knda Mlym Orya Punj Taml Telu Urdu Hans Hant Jpan Latn Cyrl Grek Armn Geor Runr Ogam Thai
</feature>
</capabilities>
</release>
<release version="1.5.0">
<capabilities>
<feature type="layout">
+Khmr Hang Sinh Tibt
</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,40 +0,0 @@
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved. -->
<icuInfo>
<icuProducts>
<icuProduct type="java">
<releases>
<release version="1.4.2">
<capabilities>
<feature type="unicode" version="3.0"/>
</capabilities>
</release>
<release version="1.5.0">
<capabilities>
<feature type="unicode" version="4.0"/>
</capabilities>
</release>
<release version="1.6.0">
<capabilities>
<feature type="unicode" version="4.0"/>
</capabilities>
</release>
<release version="1.7.0">
<capabilities>
<feature type="unicode" version="6.0"/>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,65 +0,0 @@
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (C) 2012 IBM Corporation and Others. All Rights Reserved. -->
<icuInfo>
<icuProducts>
<icuProduct type="icu4c">
<releases>
<release version="1.7">
<capabilities>
<feature type="layout">
Arab Hebr Thai Beng Deva Gujr Knda Mlym Orya Punj Taml Telu
</feature>
</capabilities>
</release>
<release version="2.2">
<capabilities>
<feature type="layout">
+Urdu
</feature>
</capabilities>
</release>
<release version="2.6">
<capabilities>
<feature type="layout">
+Hans Hant Jpan
<!-- CJK Language Variants? -->
</feature>
</capabilities>
</release>
<release version="3.0">
<capabilities>
<feature type="layout">
+Latn Cyrl Grek Armn Geor Runr Ogam Thai
</feature>
</capabilities>
</release>
<release version="3.4">
<capabilities>
<feature type="layout">
+Khmr
</feature>
</capabilities>
</release>
<release version="3.6">
<capabilities>
<feature type="layout">
+Hang Sinh Tibt
</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,31 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="java">
<releases>
<release version="1.4.2">
<capabilities>
<feature total="134" type="formatting">
<!-- Note: Java locales have different conventions than ICU. -->
ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE hi_IN iw iw_IL ja ja_JP ko ko_KR th th_TH th_TH_TH zh zh_CN zh_HK zh_TW be be_BY bg bg_BG ca ca_ES cs cs_CZ da da_DK de de_AT de_CH de_DE de_LU el el_GR en_AU en_CA en_GB en_IE en_IN en_NZ en_ZA es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_UY es_VE et et_EE fi fi_FI fr fr_BE fr_CA fr_CH fr_FR fr_LU hr hr_HR hu hu_HU is is_IS it it_CH it_IT lt lt_LT lv lv_LV mk mk_MK nl nl_BE nl_NL no no_NO no_NO_NY pl pl_PL pt pt_BR pt_PT ro ro_RO ru ru_RU sh sh_YU sk sk_SK sl sl_SI sq sq_AL sr sr_YU sv sv_SE tr tr_TR uk uk_UA en en_US
</feature>
<feature total="134" type="collation">
<!-- Note: Java locales have different conventions than ICU. -->
ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE hi_IN iw iw_IL ja ja_JP ko ko_KR th th_TH th_TH_TH zh zh_CN zh_HK zh_TW be be_BY bg bg_BG ca ca_ES cs cs_CZ da da_DK de de_AT de_CH de_DE de_LU el el_GR en_AU en_CA en_GB en_IE en_IN en_NZ en_ZA es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_UY es_VE et et_EE fi fi_FI fr fr_BE fr_CA fr_CH fr_FR fr_LU hr hr_HR hu hu_HU is is_IS it it_CH it_IT lt lt_LT lv lv_LV mk mk_MK nl nl_BE nl_NL no no_NO no_NO_NY pl pl_PL pt pt_BR pt_PT ro ro_RO ru ru_RU sh sh_YU sk sk_SK sl sl_SI sq sq_AL sr sr_YU sv sv_SE tr tr_TR uk uk_UA en en_US
</feature>
<feature type="layout">Arab Hebr Thai Beng Deva Gujr Knda Mlym Orya Punj Taml Telu Urdu Hans Hant Jpan Latn Cyrl Grek Armn Geor Runr Ogam Thai</feature>
<feature type="unicode" version="3.0"/>
<feature type="characters">af af_NA af_ZA ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LI de_LU el el_CY el_GR en en_AU en_BE en_BW en_BZ en_CA en_GB en_HK en_IE en_IN en_JM en_MH en_MT en_NA en_NZ en_PH en_PK en_SG en_TT en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU fr_MC fr_SN ga ga_IE gl gl_ES gu gu_IN gv gv_GB ha ha_Latn ha_Latn_NG haw haw_US he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID ii ii_CN is is_IS it it_CH it_IT ja ja_JP kk kk_Cyrl kk_Cyrl_KZ kl kl_GL km km_KH ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO ne ne_IN ne_NP nl nl_BE nl_NL nn nn_NO om om_ET om_KE pa pa_Arab pa_Arab_PK pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA si si_LK sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA ur ur_IN ur_PK uz uz_Arab uz_Arab_AF uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_HK zh_Hans_MO zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="java">
<releases>
<release version="1.5.0">
<capabilities>
<feature total="135" type="locales">ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE hi_IN iw iw_IL ja ja_JP ko ko_KR th th_TH th_TH_TH vi vi_VN zh zh_CN zh_HK zh_TW be be_BY bg bg_BG ca ca_ES cs cs_CZ da da_DK de de_AT de_CH de_DE de_LU el el_GR en_AU en_CA en_GB en_IE en_IN en_NZ en_ZA es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_UY es_VE et et_EE fi fi_FI fr fr_BE fr_CA fr_CH fr_FR fr_LU hr hr_HR hu hu_HU is is_IS it it_CH it_IT lt lt_LT lv lv_LV mk mk_MK nl nl_BE nl_NL no no_NO no_NO_NY pl pl_PL pt pt_BR pt_PT ro ro_RO ru ru_RU sk sk_SK sl sl_SI sq sq_AL sr sr_BA sr_CS sv sv_SE tr tr_TR uk uk_UA en_US en<!--Note: Java locales have different conventions than ICU.--></feature>
<feature total="135" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE hi_IN iw iw_IL ja ja_JP ko ko_KR th th_TH th_TH_TH vi vi_VN zh zh_CN zh_HK zh_TW be be_BY bg bg_BG ca ca_ES cs cs_CZ da da_DK de de_AT de_CH de_DE de_LU el el_GR en_AU en_CA en_GB en_IE en_IN en_NZ en_ZA es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_UY es_VE et et_EE fi fi_FI fr fr_BE fr_CA fr_CH fr_FR fr_LU hr hr_HR hu hu_HU is is_IS it it_CH it_IT lt lt_LT lv lv_LV mk mk_MK nl nl_BE nl_NL no no_NO no_NO_NY pl pl_PL pt pt_BR pt_PT ro ro_RO ru ru_RU sk sk_SK sl sl_SI sq sq_AL sr sr_BA sr_CS sv sv_SE tr tr_TR uk uk_UA en_US en<!--Note: Java locales have different conventions than ICU.--></feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2009 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="java">
<releases>
<release version="1.6.0">
<capabilities>
<feature total="215" type="formatting">zh th ko iw uk tr sq sk pt pl nl ms mk lv lt kk is hr gu ga fr es cs ca es_PR en_HK pt_PT es_PY ar_YE hu_HU in_ID en_IE hi_IN te_IN ta_IN pa_IN or_IN mr_IN ml_IN kn_IN en_IN ja_JP_JP en_ZA ar_IQ sq_AL it_IT es_AR de_AT_PREEURO sr_RS_Cyrl nl_BE fr_BE en_BE_PREEURO ar_JO ja_JP es_BO pt_BR sv_SE_PREEURO zh_SG sl_SI_PREEURO sk_SK fr_CA es_SV fr_CH es_CL zh_CN ar_KW es_CO es_CR no_NO_NY th_TH ar_LB el_CY_PREEURO mt_MT_EURO cs_CZ tr_TR de_DE_PREEURO zh_TW sk_SK_EURO lt_LT_PREEURO fr_LU_PREEURO de_LU lv_LV_PREEURO es_DO uk_UA ar_LY ar_MA sr_ME es_US es_EC et_EE_PREEURO es_UY mt_MT en_MT cs_CZ_EURO es_ES ca_ES es_VE nl_NL_PREEURO no_NO fi_FI_PREEURO fr_FR en_NZ hu_HU_EURO ar_OM el_GR_PREEURO es_GT en_PH pl_PL_PREEURO vi ja ar te ta sv sr sl sh ru ro pa no mt mr kn it in hu fi et en el de da bg be zh_HK pt_PT_PREEURO es_HN hr_HR en_GB_EURO hu_HU_PREEURO ar_QA ga_IE en_IE_PREEURO iw_IL ar_AE gu_IN bn_IN is_IS it_IT_PREEURO pl_PL_EURO de_AT th_TH_TH en_AU ro_RO sr_BA sr_RS ru_RU nl_BE_PREEURO fr_BE_PREEURO en_BE bg_BG ar_BH ar_SA ar_SD sv_SE en_SG sl_SI da_DK_EURO be_BY sk_SK_PREEURO lt_LT_EURO lv_LV_EURO en_CA it_CH de_CH ar_SY ko_KR kk_KZ sr_CS sh_CS et_EE_EURO el_CY cs_CZ_PREEURO ar_TN de_DE sv_SE_EURO da_DK lt_LT fr_LU de_LU_PREEURO lv_LV ar_DZ mk_MK en_US et_EE ar_EG el_CY_EURO mt_MT_PREEURO es_MX ms_MY es_ES_PREEURO ca_ES_PREEURO sr_RS_Latn vi_VN es_NI nl_NL nb_NO fi_FI fr_FR_PREEURO en_GB el_GR es_PA es_PE pl_PL<!--Note: Java locales have different conventions than ICU.--></feature>
<feature total="215" type="collation">zh th ko iw uk tr sq sk pt pl nl ms mk lv lt kk is hr gu ga fr es cs ca es_PR en_HK pt_PT es_PY ar_YE hu_HU in_ID en_IE hi_IN te_IN ta_IN pa_IN or_IN mr_IN ml_IN kn_IN en_IN ja_JP_JP en_ZA ar_IQ sq_AL it_IT es_AR de_AT_PREEURO sr_RS_Cyrl nl_BE fr_BE en_BE_PREEURO ar_JO ja_JP es_BO pt_BR sv_SE_PREEURO zh_SG sl_SI_PREEURO sk_SK fr_CA es_SV fr_CH es_CL zh_CN ar_KW es_CO es_CR no_NO_NY th_TH ar_LB el_CY_PREEURO mt_MT_EURO cs_CZ tr_TR de_DE_PREEURO zh_TW sk_SK_EURO lt_LT_PREEURO fr_LU_PREEURO de_LU lv_LV_PREEURO es_DO uk_UA ar_LY ar_MA sr_ME es_US es_EC et_EE_PREEURO es_UY mt_MT en_MT cs_CZ_EURO es_ES ca_ES es_VE nl_NL_PREEURO no_NO fi_FI_PREEURO fr_FR en_NZ hu_HU_EURO ar_OM el_GR_PREEURO es_GT en_PH pl_PL_PREEURO vi ja ar te ta sv sr sl sh ru ro pa no mt mr kn it in hu fi et en el de da bg be zh_HK pt_PT_PREEURO es_HN hr_HR en_GB_EURO hu_HU_PREEURO ar_QA ga_IE en_IE_PREEURO iw_IL ar_AE gu_IN bn_IN is_IS it_IT_PREEURO pl_PL_EURO de_AT th_TH_TH en_AU ro_RO sr_BA sr_RS ru_RU nl_BE_PREEURO fr_BE_PREEURO en_BE bg_BG ar_BH ar_SA ar_SD sv_SE en_SG sl_SI da_DK_EURO be_BY sk_SK_PREEURO lt_LT_EURO lv_LV_EURO en_CA it_CH de_CH ar_SY ko_KR kk_KZ sr_CS sh_CS et_EE_EURO el_CY cs_CZ_PREEURO ar_TN de_DE sv_SE_EURO da_DK lt_LT fr_LU de_LU_PREEURO lv_LV ar_DZ mk_MK en_US et_EE ar_EG el_CY_EURO mt_MT_PREEURO es_MX ms_MY es_ES_PREEURO ca_ES_PREEURO sr_RS_Latn vi_VN es_NI nl_NL nb_NO fi_FI fr_FR_PREEURO en_GB el_GR es_PA es_PE pl_PL<!--Note: Java locales have different conventions than ICU.--></feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,28 +0,0 @@
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2012 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="java">
<releases>
<release version="1.6.0">
<capabilities>
<feature total="152" type="formatting">
<!-- Note: Java locales have different conventions than ICU. -->
ja_JP es_PE en ja_JP_JP es_PA sr_BA mk es_GT ar_AE no_NO sq_AL bg ar_IQ ar_YE hu pt_PT el_CY ar_QA mk_MK sv de_CH en_US fi_FI is cs en_MT sl_SI sk_SK it tr_TR zh th ar_SA no en_GB sr_CS lt ro en_NZ no_NO_NY lt_LT es_NI nl ga_IE fr_BE es_ES ar_LB ko fr_CA et_EE ar_KW sr_RS es_US es_MX ar_SD in_ID ru lv es_UY lv_LV iw pt_BR ar_SY hr et es_DO fr_CH hi_IN es_VE ar_BH en_PH ar_TN fi de_AT es nl_NL es_EC zh_TW ar_JO be is_IS es_CO es_CR es_CL ar_EG en_ZA th_TH el_GR it_IT ca hu_HU fr en_IE uk_UA pl_PL fr_LU nl_BE en_IN ca_ES ar_MA es_BO en_AU sr zh_SG pt uk es_SV ru_RU ko_KR vi ar_DZ vi_VN sr_ME sq ar_LY ar zh_CN be_BY zh_HK ja iw_IL bg_BG in mt_MT es_PY sl fr_FR cs_CZ it_CH ro_RO es_PR en_CA de_DE ga de_LU de es_AR sk ms_MY hr_HR en_SG da mt pl ar_OM tr th_TH_TH el ms sv_SE da_DK es_HN
</feature>
<feature total="152" type="collation">
<!-- Note: Java locales have different conventions than ICU. -->
ja_JP es_PE en ja_JP_JP es_PA sr_BA mk es_GT ar_AE no_NO sq_AL bg ar_IQ ar_YE hu pt_PT el_CY ar_QA mk_MK sv de_CH en_US fi_FI is cs en_MT sl_SI sk_SK it tr_TR zh th ar_SA no en_GB sr_CS lt ro en_NZ no_NO_NY lt_LT es_NI nl ga_IE fr_BE es_ES ar_LB ko fr_CA et_EE ar_KW sr_RS es_US es_MX ar_SD in_ID ru lv es_UY lv_LV iw pt_BR ar_SY hr et es_DO fr_CH hi_IN es_VE ar_BH en_PH ar_TN fi de_AT es nl_NL es_EC zh_TW ar_JO be is_IS es_CO es_CR es_CL ar_EG en_ZA th_TH el_GR it_IT ca hu_HU fr en_IE uk_UA pl_PL fr_LU nl_BE en_IN ca_ES ar_MA es_BO en_AU sr zh_SG pt uk es_SV ru_RU ko_KR vi ar_DZ vi_VN sr_ME sq ar_LY ar zh_CN be_BY zh_HK ja iw_IL bg_BG in mt_MT es_PY sl fr_FR cs_CZ it_CH ro_RO es_PR en_CA de_DE ga de_LU de es_AR sk ms_MY hr_HR en_SG da mt pl ar_OM tr th_TH_TH el ms sv_SE da_DK es_HN
</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,28 +0,0 @@
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2012 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="java">
<releases>
<release version="1.7.0">
<capabilities>
<feature total="156" type="formatting">
<!-- Note: Java locales have different conventions than ICU. -->
ms_MY ar_QA is_IS fi_FI pl en_MT it_CH nl_BE ar_SA ar_IQ es_PR es_CL fi de_AT da en_GB es_PA sr ar_YE mk_MK mk en_CA vi_VN nl_NL es_US zh_CN es_HN en_US fr th ar ar_MA lv de in_ID hr en_ZA ko_KR ar_TN in ja sr_RS be_BY zh_TW ar_SD pt is ja_JP_JP_#u-ca-japanese es_BO ar_DZ ms es_AR ar_AE fr_CA sl es lt_LT sr_ME_#Latn ar_SY ru_RU fr_BE es_ES bg iw_IL sv en iw da_DK es_CR zh_HK zh ca_ES th_TH uk_UA es_DO es_VE pl_PL ar_LY ar_JO it uk hu_HU ga es_GT es_PY bg_BG hr_HR sr_BA_#Latn ro_RO fr_LU no lt en_SG es_EC sr_BA es_NI sk ru mt es_SV nl hi_IN et el_GR sl_SI it_IT ja_JP de_LU fr_CH mt_MT ar_BH sq vi sr_ME pt_BR no_NO el de_CH zh_SG ar_KW ar_EG ga_IE es_PE cs_CZ tr_TR cs es_UY en_IE en_IN ar_OM sr_CS ca be sr__#Latn ko sq_AL pt_PT lv_LV sr_RS_#Latn sk_SK es_MX en_AU no_NO_NY en_NZ sv_SE ro ar_LB de_DE th_TH_TH_#u-nu-thai tr es_CO en_PH et_EE el_CY hu fr_FR
</feature>
<feature total="156" type="collation">
<!-- Note: Java locales have different conventions than ICU. -->
ms_MY ar_QA is_IS fi_FI pl en_MT it_CH nl_BE ar_SA ar_IQ es_PR es_CL fi de_AT da en_GB es_PA sr ar_YE mk_MK mk en_CA vi_VN nl_NL es_US zh_CN es_HN en_US fr th ar ar_MA lv de in_ID hr en_ZA ko_KR ar_TN in ja sr_RS be_BY zh_TW ar_SD pt is ja_JP_JP_#u-ca-japanese es_BO ar_DZ ms es_AR ar_AE fr_CA sl es lt_LT sr_ME_#Latn ar_SY ru_RU fr_BE es_ES bg iw_IL sv en iw da_DK es_CR zh_HK zh ca_ES th_TH uk_UA es_DO es_VE pl_PL ar_LY ar_JO it uk hu_HU ga es_GT es_PY bg_BG hr_HR sr_BA_#Latn ro_RO fr_LU no lt en_SG es_EC sr_BA es_NI sk ru mt es_SV nl hi_IN et el_GR sl_SI it_IT ja_JP de_LU fr_CH mt_MT ar_BH sq vi sr_ME pt_BR no_NO el de_CH zh_SG ar_KW ar_EG ga_IE es_PE cs_CZ tr_TR cs es_UY en_IE en_IN ar_OM sr_CS ca be sr__#Latn ko sq_AL pt_PT lv_LV sr_RS_#Latn sk_SK es_MX en_AU no_NO_NY en_NZ sv_SE ro ar_LB de_DE th_TH_TH_#u-nu-thai tr es_CO en_PH et_EE el_CY hu fr_FR
</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="icu4j">
<releases>
<release version="2.2">
<capabilities>
<feature type="unicode" version="3.2"/>
<feature type="formatting"/>
<feature type="collation"/>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="icu4j">
<releases>
<release version="2.4">
<capabilities>
<feature type="unicode" version="3.2"/>
<feature type="formatting"/>
<feature type="collation"/>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="icu4j">
<releases>
<release version="2.6">
<capabilities>
<feature type="unicode" version="4.0"/>
<feature type="formatting"/>
<feature type="collation"/>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="icu4j">
<releases>
<release version="2.6.1">
<capabilities>
<feature type="unicode" version="4.0"/>
<feature type="formatting"/>
<feature type="collation"/>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="icu4j">
<releases>
<release version="2.8">
<capabilities>
<feature type="unicode" version="4.0"/>
<feature type="uca" version="4.0"/>
<feature type="formatting"/>
<feature type="collation"/>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,44 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="icu4j">
<releases>
<release version="3.0">
<capabilities>
<feature type="unicode" version="4.0.1"/>
<feature type="uca" version="4.0"/>
<feature total="219" type="formatting">
af af_ZA am am_ET ar ar_AE
ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM
ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE be be_BY bg bg_BG bn bn_IN ca
ca_ES cs cs_CZ da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR
en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ
en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO
es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA
es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa
fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga
ga_IE gl gl_ES gu gu_IN gv gv_GB he he_IL hi hi_IN hr hr_HR hu
hu_HU hy hy_AM hy_AM_REVISED id id_ID is is_IS it it_CH it_IT ja
ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt
lt_LT lv lv_LV mk mk_MK mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO
nl nl_BE nl_NL nn nn_NO om om_ET om_KE pa pa_IN pl pl_PL ps ps_AF
pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sh sh_YU sk sk_SK sl sl_SI
so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_YU sv sv_FI sv_SE sw
sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk
uk_UA vi vi_VN zh zh_CN zh_HK zh_MO zh_SG zh_TW
</feature>
<feature total="59" type="collation">ar be bg ca cs da de el en en_BE eo es et fa fa_AF fi fo fr gu he hi hr hu is it ja kk kl kn ko lt lv mk mr mt nb nn pa pl ps ro ru sh sk sl sq sr sv ta te th tr uk vi zh zh_HK zh_Hant zh_MO zh_TW</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="icu4j">
<releases>
<release version="3.2">
<capabilities>
<feature type="unicode" version="4.0.1"/>
<feature type="uca" version="4.0"/>
<feature total="230" type="formatting">af af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_PK en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gl gl_ES gu gu_IN gv gv_GB he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_YU sr_Latn sr_Latn_YU sr_YU sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
<feature total="62" type="collation">ar be bg ca cs da de el en en_BE eo es et fa fa_AF fi fo fr gu he hi hr hu is it ja kk kl kn ko lt lv mk ml mr mt nb nn om or pa pl ps ro ru sh sk sl sq sr sv ta te th tr uk vi zh zh_HK zh_Hant zh_MO zh_TW</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="icu4j">
<releases>
<release version="3.4">
<capabilities>
<feature type="unicode" version="4.1"/>
<feature type="uca" version="4.1"/>
<feature total="242" type="formatting">af af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_PK en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gl gl_ES gu gu_IN gv gv_GB he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_CS sr_Latn sr_Latn_CS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_PK uz uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
<feature total="197" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE be be_BY bg bg_BG ca ca_ES cs cs_CZ da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN he he_IL hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sh sh_BA sh_YU sk sk_SK sl sl_SI sq sq_AL sr sr_BA sr_Cyrl sr_Cyrl_BA sr_Cyrl_YU sr_YU sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA vi vi_VN zh zh_CN zh_HK zh_Hant zh_MO zh_SG zh_TW</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="icu4j">
<releases>
<release version="3.4">
<capabilities>
<feature type="unicode" version="4.1"/>
<feature type="uca" version="4.1"/>
<feature total="242" type="formatting">af af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_PK en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gl gl_ES gu gu_IN gv gv_GB he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_CS sr_Latn sr_Latn_CS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_PK uz uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
<feature total="197" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE be be_BY bg bg_BG ca ca_ES cs cs_CZ da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN he he_IL hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sh sh_BA sh_YU sk sk_SK sl sl_SI sq sq_AL sr sr_BA sr_Cyrl sr_Cyrl_BA sr_Cyrl_YU sr_YU sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA vi vi_VN zh zh_CN zh_HK zh_Hant zh_MO zh_SG zh_TW</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="icu4j">
<releases>
<release version="3.4.2">
<capabilities>
<feature type="unicode" version="4.1"/>
<feature type="uca" version="4.1"/>
<feature total="242" type="formatting">af af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_PK en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gl gl_ES gu gu_IN gv gv_GB he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_CS sr_Latn sr_Latn_CS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_PK uz uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
<feature total="197" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE be be_BY bg bg_BG ca ca_ES cs cs_CZ da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN he he_IL hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sh sh_BA sh_YU sk sk_SK sl sl_SI sq sq_AL sr sr_BA sr_Cyrl sr_Cyrl_BA sr_Cyrl_YU sr_YU sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA vi vi_VN zh zh_CN zh_HK zh_Hant zh_MO zh_SG zh_TW</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="icu4j">
<releases>
<release version="3.4.3">
<capabilities>
<feature type="unicode" version="4.1"/>
<feature type="uca" version="4.1"/>
<feature total="242" type="formatting">af af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_PK en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gl gl_ES gu gu_IN gv gv_GB he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_CS sr_Latn sr_Latn_CS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_PK uz uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
<feature total="201" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE be be_BY bg bg_BG ca ca_ES cs cs_CZ da da_DK de de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN he he_IL hi hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sh sh_BA sh_YU sk sk_SK sl sl_SI sq sq_AL sr sr_BA sr_Cyrl sr_Cyrl_BA sr_Cyrl_YU sr_YU sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA vi vi_VN zh zh zh_CN zh_HK zh_Hant zh_MO zh_SG zh_TW</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="icu4j">
<releases>
<release version="3.4.3">
<capabilities>
<feature type="unicode" version="4.1"/>
<feature type="uca" version="4.1"/>
<feature total="242" type="formatting">af af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_PK en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gl gl_ES gu gu_IN gv gv_GB he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_CS sr_Latn sr_Latn_CS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_PK uz uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
<feature total="201" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE be be_BY bg bg_BG ca ca_ES cs cs_CZ da da_DK de de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN he he_IL hi hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sh sh_BA sh_YU sk sk_SK sl sl_SI sq sq_AL sr sr_BA sr_Cyrl sr_Cyrl_BA sr_Cyrl_YU sr_YU sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA vi vi_VN zh zh zh_CN zh_HK zh_Hant zh_MO zh_SG zh_TW</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="icu4j">
<releases>
<release version="3.4.5">
<capabilities>
<feature type="unicode" version="4.1"/>
<feature type="uca" version="4.1"/>
<feature total="242" type="formatting">af af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_PK en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gl gl_ES gu gu_IN gv gv_GB he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_CS sr_Latn sr_Latn_CS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_PK uz uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
<feature total="201" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE be be_BY bg bg_BG ca ca_ES cs cs_CZ da da_DK de de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN he he_IL hi hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sh sh_BA sh_YU sk sk_SK sl sl_SI sq sq_AL sr sr_BA sr_Cyrl sr_Cyrl_BA sr_Cyrl_YU sr_YU sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA vi vi_VN zh zh zh_CN zh_HK zh_Hant zh_MO zh_SG zh_TW</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2009 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="icu4j">
<releases>
<release version="3.6">
<capabilities>
<feature type="unicode" version="5.0"/>
<feature type="uca" version="5.0"/>
<feature total="245" type="formatting">af af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_PK en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gl gl_ES gu gu_IN gv gv_GB haw haw_US he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_CS sr_Latn sr_Latn_CS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_IN ur_PK uz uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
<feature total="205" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN be be_BY bg bg_BG bn ca ca_ES cs cs_CZ da da_DK de de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN he he_IL hi hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL kn kn_IN ko ko_KR kok lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sh sh_BA sh_YU sk sk_SK sl sl_SI sq sq_AL sr sr_BA sr_Cyrl sr_Cyrl_BA sr_Cyrl_YU sr_YU sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA vi vi_VN zh zh zh_CN zh_HK zh_Hant zh_MO zh_SG zh_TW</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="icu4j">
<releases>
<release version="3.8">
<capabilities>
<feature type="unicode" version="5.0"/>
<feature type="uca" version="5.0"/>
<feature type="tz" version="2007g"/>
<feature total="266" type="formatting">af af_NA af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_BD bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LI de_LU el el_CY el_GR en en_AU en_BE en_BW en_BZ en_CA en_GB en_HK en_IE en_IN en_JM en_MH en_MT en_NA en_NZ en_PH en_PK en_SG en_TT en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU fr_MC ga ga_IE gl gl_ES gu gu_IN gv gv_GB haw haw_US he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID is is_IS it it_CH it_IT ja ja_JP ka ka_GE kk kk_KZ kl kl_GL km km_KH kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_IN ur_PK uz uz_Arab uz_Arab_AF uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
<feature total="204" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN be be_BY bg bg_BG bn ca ca_ES cs cs_CZ cy da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN haw he he_IL hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL km kn kn_IN ko ko_KR kok lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="icu4j">
<releases>
<release version="3.8.1">
<capabilities>
<feature type="unicode" version="5.0"/>
<feature type="uca" version="5.0"/>
<feature type="tz" version="2007j"/>
<feature total="266" type="formatting">af af_NA af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_BD bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LI de_LU el el_CY el_GR en en_AU en_BE en_BW en_BZ en_CA en_GB en_HK en_IE en_IN en_JM en_MH en_MT en_NA en_NZ en_PH en_PK en_SG en_TT en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU fr_MC ga ga_IE gl gl_ES gu gu_IN gv gv_GB haw haw_US he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID is is_IS it it_CH it_IT ja ja_JP ka ka_GE kk kk_KZ kl kl_GL km km_KH kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_IN ur_PK uz uz_Arab uz_Arab_AF uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
<feature total="204" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN be be_BY bg bg_BG bn ca ca_ES cs cs_CZ cy da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN haw he he_IL hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL km kn kn_IN ko ko_KR kok lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="icu4j">
<releases>
<release version="4.0">
<capabilities>
<feature type="unicode" version="5.1"/>
<feature type="uca" version="5.1"/>
<feature type="tz" version="2008c"/>
<feature total="282" type="formatting">af af_NA af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_BD bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LI de_LU el el_CY el_GR en en_AU en_BE en_BW en_BZ en_CA en_GB en_HK en_IE en_IN en_JM en_MH en_MT en_NA en_NZ en_PH en_PK en_SG en_TT en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU fr_MC fr_SN ga ga_IE gl gl_ES gu gu_IN gv gv_GB ha ha_Latn ha_Latn_NG haw haw_US he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID ii ii_CN is is_IS it it_CH it_IT ja ja_JP ka ka_GE kk kk_Cyrl kk_Cyrl_KZ kl kl_GL km km_KH kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO ne ne_IN ne_NP nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_Arab pa_Arab_PK pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA si si_LK sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_IN ur_PK uz uz_Arab uz_Arab_AF uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_HK zh_Hans_MO zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
<feature total="211" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN haw he he_IL hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL km kn kn_IN ko ko_KR kok lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_Arab pa_Arab_PK pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA ur ur_IN ur_PK vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2009 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="icu4j">
<releases>
<release version="4.0.1">
<capabilities>
<feature type="unicode" version="5.1"/>
<feature type="uca" version="5.1"/>
<feature type="tz" version="2008i"/>
<feature total="282" type="formatting">af af_NA af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_BD bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LI de_LU el el_CY el_GR en en_AU en_BE en_BW en_BZ en_CA en_GB en_HK en_IE en_IN en_JM en_MH en_MT en_NA en_NZ en_PH en_PK en_SG en_TT en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU fr_MC fr_SN ga ga_IE gl gl_ES gu gu_IN gv gv_GB ha ha_Latn ha_Latn_NG haw haw_US he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID ii ii_CN is is_IS it it_CH it_IT ja ja_JP ka ka_GE kk kk_Cyrl kk_Cyrl_KZ kl kl_GL km km_KH kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO ne ne_IN ne_NP nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_Arab pa_Arab_PK pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA si si_LK sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_IN ur_PK uz uz_Arab uz_Arab_AF uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_HK zh_Hans_MO zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
<feature total="211" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN haw he he_IL hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL km kn kn_IN ko ko_KR kok lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_Arab pa_Arab_PK pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA ur ur_IN ur_PK vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2008 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="icu4j">
<releases>
<release version="4.1.1">
<capabilities>
<feature type="unicode" version="5.1"/>
<feature type="uca" version="5.1"/>
<feature type="tz" version="2008f"/>
<feature total="282" type="formatting">af af_NA af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_BD bn_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LI de_LU el el_CY el_GR en en_AU en_BE en_BW en_BZ en_CA en_GB en_HK en_IE en_IN en_JM en_MH en_MT en_NA en_NZ en_PH en_PK en_SG en_TT en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU fr_MC fr_SN ga ga_IE gl gl_ES gu gu_IN gv gv_GB ha ha_Latn ha_Latn_NG haw haw_US he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID ii ii_CN is is_IS it it_CH it_IT ja ja_JP ka ka_GE kk kk_Cyrl kk_Cyrl_KZ kl kl_GL km km_KH kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO ne ne_IN ne_NP nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_Arab pa_Arab_PK pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA si si_LK sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_IN ur_PK uz uz_Arab uz_Arab_AF uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_HK zh_Hans_MO zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
<feature total="211" type="collation">ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN haw he he_IL hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL km kn kn_IN ko ko_KR kok lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_Arab pa_Arab_PK pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA sk sk_SK sl sl_SI sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA ur ur_IN ur_PK vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2009 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="icu4j">
<releases>
<release version="4.2">
<capabilities>
<feature type="unicode" version="5.1"/>
<feature type="uca" version="5.1"/>
<feature type="tz" version="2009g"/>
<feature total="292" type="formatting">af af_NA af_ZA am am_ET ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_BD bn_IN bo bo_CN bo_IN ca ca_ES cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LI de_LU el el_CY el_GR en en_AU en_BE en_BW en_BZ en_CA en_GB en_HK en_IE en_IN en_JM en_MH en_MT en_NA en_NZ en_PH en_PK en_SG en_TT en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU fr_MC fr_SN ga ga_IE gl gl_ES gsw gsw_CH gu gu_IN gv gv_GB ha ha_Latn ha_Latn_GH ha_Latn_NE ha_Latn_NG haw haw_US he he_IL hi hi_IN hr hr_HR hu hu_HU hy hy_AM hy_AM_REVISED id id_ID ii ii_CN is is_IS it it_CH it_IT ja ja_JP ka ka_GE kk kk_Cyrl kk_Cyrl_KZ kl kl_GL km km_KH kn kn_IN ko ko_KR kok kok_IN kw kw_GB lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO ne ne_IN ne_NP nl nl_BE nl_NL nn nn_NO om om_ET om_KE or or_IN pa pa_Arab pa_Arab_PK pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_MD ro_RO ru ru_RU ru_UA si si_LK sk sk_SK sl sl_SI so so_DJ so_ET so_KE so_SO sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE sw sw_KE sw_TZ ta ta_IN te te_IN th th_TH ti ti_ER ti_ET tr tr_TR uk uk_UA ur ur_IN ur_PK uz uz_Arab uz_Arab_AF uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_HK zh_Hans_MO zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW zu zu_ZA</feature>
<feature total="220" type="collation">af af_NA af_ZA ar ar_AE ar_BH ar_DZ ar_EG ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as as_IN az az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_IN ca ca_ES cs cs_CZ cy da da_DK de de_AT de_BE de_CH de_DE de_LU el el_GR en en_AU en_BE en_BW en_CA en_GB en_HK en_IE en_IN en_MT en_NZ en_PH en_SG en_US en_US_POSIX en_VI en_ZA en_ZW eo es es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR fr_LU ga ga_IE gu gu_IN haw he he_IL hi hi_IN hr hr_HR hu hu_HU id id_ID is is_IS it it_CH it_IT ja ja_JP kk kk_KZ kl kl_GL km kn kn_IN ko ko_KR kok lt lt_LT lv lv_LV mk mk_MK ml mr mr_IN ms ms_BN ms_MY mt mt_MT nb nb_NO nl nl_BE nl_NL nn nn_NO om om_ET om_KE or pa pa_Arab pa_Arab_PK pa_Guru pa_Guru_IN pa_IN pl pl_PL ps ps_AF pt pt_BR pt_PT ro ro_RO ru ru_RU ru_UA si si_LK sk sk_SK sl sl_SI sq sq_AL sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_FI sv_SE ta ta_IN te te_IN th th_TH tr tr_TR uk uk_UA ur ur_IN ur_PK vi vi_VN zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<!-- Copyright (c) 2012 IBM Corporation and Others, All Rights Reserved. -->
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<icuInfo>
<icuProducts>
<icuProduct type="icu4j">
<releases>
<release version="50.1">
<capabilities>
<feature type="unicode" version="6.2"/>
<feature type="uca" version="6.2"/>
<feature type="tz" version="2012h"/>
<feature total="593" type="formatting">af af_NA af_ZA agq agq_CM ak ak_GH am am_ET ar ar_001 ar_AE ar_BH ar_DJ ar_DZ ar_EG ar_EH ar_ER ar_IL ar_IQ ar_JO ar_KM ar_KW ar_LB ar_LY ar_MA ar_MR ar_OM ar_PS ar_QA ar_SA ar_SD ar_SO ar_SY ar_TD ar_TN ar_YE as as_IN asa asa_TZ az az_Cyrl az_Cyrl_AZ az_Latn az_Latn_AZ bas bas_CM be be_BY bem bem_ZM bez bez_TZ bg bg_BG bm bm_ML bn bn_BD bn_IN bo bo_CN bo_IN br br_FR brx brx_IN bs bs_Cyrl bs_Cyrl_BA bs_Latn bs_Latn_BA ca ca_AD ca_ES cgg cgg_UG chr chr_US cs cs_CZ cy cy_GB da da_DK dav dav_KE de de_AT de_BE de_CH de_DE de_LI de_LU dje dje_NE dua dua_CM dyo dyo_SN dz dz_BT ebu ebu_KE ee ee_GH ee_TG el el_CY el_GR en en_150 en_AG en_AS en_AU en_BB en_BE en_BM en_BS en_BW en_BZ en_CA en_CM en_DM en_FJ en_FM en_GB en_GD en_GG en_GH en_GI en_GM en_GU en_GY en_HK en_IE en_IM en_IN en_JE en_JM en_KE en_KI en_KN en_KY en_LC en_LR en_LS en_MG en_MH en_MP en_MT en_MU en_MW en_NA en_NG en_NZ en_PG en_PH en_PK en_PR en_PW en_SB en_SC en_SG en_SL en_SS en_SZ en_TC en_TO en_TT en_TZ en_UG en_UM en_US en_US_POSIX en_VC en_VG en_VI en_VU en_WS en_ZA en_ZM en_ZW eo es es_419 es_AR es_BO es_CL es_CO es_CR es_CU es_DO es_EA es_EC es_ES es_GQ es_GT es_HN es_IC es_MX es_NI es_PA es_PE es_PH es_PR es_PY es_SV es_US es_UY es_VE et et_EE eu eu_ES ewo ewo_CM fa fa_AF fa_IR ff ff_SN fi fi_FI fil fil_PH fo fo_FO fr fr_BE fr_BF fr_BI fr_BJ fr_BL fr_CA fr_CD fr_CF fr_CG fr_CH fr_CI fr_CM fr_DJ fr_DZ fr_FR fr_GA fr_GF fr_GN fr_GP fr_GQ fr_HT fr_KM fr_LU fr_MA fr_MC fr_MF fr_MG fr_ML fr_MQ fr_MR fr_MU fr_NC fr_NE fr_PF fr_RE fr_RW fr_SC fr_SN fr_SY fr_TD fr_TG fr_TN fr_VU fr_YT ga ga_IE gl gl_ES gsw gsw_CH gu gu_IN guz guz_KE gv gv_GB ha ha_Latn ha_Latn_GH ha_Latn_NE ha_Latn_NG haw haw_US he he_IL hi hi_IN hr hr_BA hr_HR hu hu_HU hy hy_AM id id_ID ig ig_NG ii ii_CN is is_IS it it_CH it_IT it_SM ja ja_JP jgo jgo_CM jmc jmc_TZ ka ka_GE kab kab_DZ kam kam_KE kde kde_TZ kea kea_CV khq khq_ML ki ki_KE kk kk_Cyrl kk_Cyrl_KZ kl kl_GL kln kln_KE km km_KH kn kn_IN ko ko_KP ko_KR kok kok_IN ks ks_Arab ks_Arab_IN ksb ksb_TZ ksf ksf_CM kw kw_GB lag lag_TZ lg lg_UG ln ln_AO ln_CD ln_CF ln_CG lo lo_LA lt lt_LT lu lu_CD luo luo_KE luy luy_KE lv lv_LV mas mas_KE mas_TZ mer mer_KE mfe mfe_MU mg mg_MG mgh mgh_MZ mgo mgo_CM mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY ms_SG mt mt_MT mua mua_CM my my_MM naq naq_NA nb nb_NO nd nd_ZW ne ne_IN ne_NP nl nl_AW nl_BE nl_CW nl_NL nl_SR nl_SX nmg nmg_CM nn nn_NO nus nus_SD nyn nyn_UG om om_ET om_KE or or_IN pa pa_Arab pa_Arab_PK pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_AO pt_BR pt_CV pt_GW pt_MO pt_MZ pt_PT pt_ST pt_TL rm rm_CH rn rn_BI ro ro_MD ro_RO rof rof_TZ ru ru_BY ru_KG ru_KZ ru_MD ru_RU ru_UA rw rw_RW rwk rwk_TZ saq saq_KE sbp sbp_TZ seh seh_MZ ses ses_ML sg sg_CF shi shi_Latn shi_Latn_MA shi_Tfng shi_Tfng_MA si si_LK sk sk_SK sl sl_SI sn sn_ZW so so_DJ so_ET so_KE so_SO sq sq_AL sq_MK sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_AX sv_FI sv_SE sw sw_KE sw_TZ sw_UG swc swc_CD ta ta_IN ta_LK ta_MY ta_SG te te_IN teo teo_KE teo_UG th th_TH ti ti_ER ti_ET to to_TO tr tr_CY tr_TR twq twq_NE tzm tzm_Latn tzm_Latn_MA uk uk_UA ur ur_IN ur_PK uz uz_Arab uz_Arab_AF uz_Cyrl uz_Cyrl_UZ uz_Latn uz_Latn_UZ vai vai_Latn vai_Latn_LR vai_Vaii vai_Vaii_LR vi vi_VN vun vun_TZ xog xog_UG yav yav_CM yo yo_NG zh zh_Hans zh_Hans_CN zh_Hans_HK zh_Hans_MO zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW zu zu_ZA</feature>
<feature total="401" type="collation">af af_NA af_ZA ar ar_001 ar_AE ar_BH ar_DJ ar_DZ ar_EG ar_EH ar_ER ar_IL ar_IQ ar_JO ar_KM ar_KW ar_LB ar_LY ar_MA ar_MR ar_OM ar_PS ar_QA ar_SA ar_SD ar_SO ar_SY ar_TD ar_TN ar_YE as as_IN az az_Latn az_Latn_AZ be be_BY bg bg_BG bn bn_BD bn_IN bs bs_Cyrl bs_Cyrl_BA bs_Latn bs_Latn_BA ca ca_AD ca_ES chr chr_US cs cs_CZ cy cy_GB da da_DK de de_AT de_BE de_CH de_DE de_LI de_LU dz ee ee_GH ee_TG el el_CY el_GR en en_150 en_AG en_AS en_AU en_BB en_BE en_BM en_BS en_BW en_BZ en_CA en_CM en_DM en_FJ en_FM en_GB en_GD en_GG en_GH en_GI en_GM en_GU en_HK en_IE en_IM en_IN en_JE en_JM en_KE en_KI en_KN en_KY en_LC en_LR en_LS en_MG en_MH en_MP en_MT en_MU en_MW en_NA en_NG en_NZ en_PG en_PH en_PK en_PR en_PW en_SB en_SC en_SG en_SL en_SS en_TC en_TO en_TT en_TZ en_UG en_UM en_US en_US_POSIX en_VC en_VG en_VI en_VU en_WS en_ZA en_ZM en_ZW eo es es_419 es_AR es_BO es_CL es_CO es_CR es_CU es_DO es_EA es_EC es_ES es_GQ es_GT es_HN es_IC es_MX es_NI es_PA es_PE es_PH es_PR es_PY es_SV es_US es_UY es_VE et et_EE fa fa_AF fa_IR fi fi_FI fil fil_PH fo fo_FO fr fr_BE fr_BF fr_BI fr_BJ fr_BL fr_CA fr_CD fr_CF fr_CG fr_CH fr_CI fr_CM fr_DJ fr_DZ fr_FR fr_GA fr_GN fr_GP fr_GQ fr_HT fr_KM fr_LU fr_MA fr_MC fr_MF fr_MG fr_ML fr_MQ fr_MR fr_MU fr_NC fr_NE fr_PF fr_RE fr_RW fr_SC fr_SN fr_SY fr_TD fr_TG fr_TN fr_VU ga ga_IE gu gu_IN ha ha_Latn ha_Latn_GH ha_Latn_NE ha_Latn_NG haw he he_IL hi hi_IN hr hr_BA hr_HR hu hu_HU hy hy_AM id id_ID ig ig_NG is is_IS it it_CH it_IT it_SM ja ja_JP ka ka_GE kk kk_KZ kl kl_GL km km_KH kn kn_IN ko ko_KP ko_KR kok kok_IN ln ln_AO ln_CD ln_CF ln_CG lt lt_LT lv lv_LV mk mk_MK ml ml_IN mr mr_IN ms ms_BN ms_MY ms_SG mt mt_MT my my_MM nb nb_NO nl nl_AW nl_BE nl_CW nl_NL nl_SR nl_SX nn nn_NO om om_ET om_KE or or_IN pa pa_Arab pa_Arab_PK pa_Guru pa_Guru_IN pl pl_PL ps ps_AF pt pt_AO pt_BR pt_CV pt_GW pt_MO pt_MZ pt_PT pt_ST pt_TL ro ro_MD ro_RO ru ru_BY ru_KG ru_KZ ru_MD ru_RU ru_UA si si_LK sk sk_SK sl sl_SI sq sq_AL sq_MK sr sr_Cyrl sr_Cyrl_BA sr_Cyrl_ME sr_Cyrl_RS sr_Latn sr_Latn_BA sr_Latn_ME sr_Latn_RS sv sv_AX sv_FI sv_SE sw sw_KE sw_TZ sw_UG ta ta_IN ta_LK ta_MY ta_SG te te_IN th th_TH to to_TO tr tr_CY tr_TR uk uk_UA ur ur_IN ur_PK vi vi_VN yo yo_NG zh zh_Hans zh_Hans_CN zh_Hans_SG zh_Hant zh_Hant_HK zh_Hant_MO zh_Hant_TW zu zu_ZA</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,7 +0,0 @@
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (C) 2012 IBM Corporation and Others. All Rights Reserved.
Note: this is a bit of a mess right now.

View file

@ -1,548 +0,0 @@
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
// Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved.
#include <ostream>
#include "xmlout.h"
#include <stdio.h>
#include <stdlib.h>
#include "uoptions.h"
#include "unicode/putil.h"
#include "unicode/ucol.h"
#include "unicode/ucal.h"
#include "unicode/uchar.h"
#include "unicode/ures.h"
#include "unicode/udat.h"
#include "unicode/ustring.h"
#if (U_ICU_VERSION_MAJOR_NUM > 2) || ((U_ICU_VERSION_MAJOR_NUM>1)&&(U_ICU_VERSION_MINOR_NUM>5))
#include "unicode/uclean.h"
#endif
static char *progName;
static UOption options[]={
UOPTION_HELP_H, /* 0 */
UOPTION_HELP_QUESTION_MARK, /* 1 */
UOPTION_VERBOSE, /* 2 */
UOPTION_ICUDATADIR, /* 3 */
UOPTION_DESTDIR, /* 4 */
UOPTION_COPYRIGHT, /* 5 */
};
const char *u_errorNameShort(UErrorCode code) {
switch(code) {
case U_ZERO_ERROR: return "ok";
case U_MISSING_RESOURCE_ERROR: return "missing";
default: return u_errorName(code);
}
}
void usageAndDie(int retCode) {
printf("Usage: %s [-v] [-options] -o output-file dictionary-file\n", progName);
printf("\tRead in word list and write out compact trie dictionary\n"
"options:\n"
"\t-h or -? or --help this usage text\n"
"\t-V or --version show a version message\n"
"\t-c or --copyright include a copyright notice\n"
"\t-v or --verbose turn on verbose output\n"
"\t-i or --icudatadir directory for locating any needed intermediate data files,\n"
"\t followed by path, defaults to %s\n"
"\t-d or --destdir destination directory, followed by the path\n",
u_getDataDirectory());
exit (retCode);
}
/*U_CAPI void U_EXPORT2*/
static void _versionFromUString(UVersionInfo versionArray, const char16_t *versionString) {
if(versionArray==nullptr) {
return;
}
if(versionString!=nullptr) {
char verchars[U_MAX_VERSION_LENGTH+1];
u_UCharsToChars(versionString, verchars, U_MAX_VERSION_LENGTH);
u_versionFromString(versionArray, verchars);
}
}
/*U_CAPI void U_EXPORT2*/
static void _getCLDRVersionDirect(UVersionInfo versionArray, UErrorCode *status) {
UResourceBundle *resindx;
resindx = ures_openDirect(nullptr, "supplementalData", status);
if(!U_FAILURE(*status)) {
// fprintf(stderr, "Err: could not open res_index, %s\n", u_errorName(status));
// fflush(stderr);
// } else {
const char16_t *cldrver;
int32_t len;
cldrver = ures_getStringByKey(resindx, "cldrVersion", &len, status);
if(!U_FAILURE(*status)) {
// fprintf(stderr, "ERR: could not load CLDRVersion key: %s\n", u_errorName(*status));
// fflush(stderr);
// } else {
// UVersionInfo cldrVersion;
_versionFromUString(versionArray, cldrver);
// strcpy(tmp, "type=\"cldr\" version=\"");
// u_versionToString(cldrVersion, tmp+strlen(tmp));
// strcat(tmp, "\"");
// XMLElement icuData(xf, "feature", tmp, true);
}
ures_close(resindx);
}
}
/*U_CAPI void U_EXPORT2*/
static void _getCLDRVersionOld(UVersionInfo versionArray, UErrorCode *status) {
UResourceBundle *resindx;
resindx = ures_openDirect(nullptr, "res_index", status);
if(!U_FAILURE(*status)) {
// fprintf(stderr, "Err: could not open res_index, %s\n", u_errorName(status));
// fflush(stderr);
// } else {
const char16_t *cldrver;
int32_t len;
cldrver = ures_getStringByKey(resindx, "CLDRVersion", &len, status);
if(!U_FAILURE(*status)) {
// fprintf(stderr, "ERR: could not load CLDRVersion key: %s\n", u_errorName(*status));
// fflush(stderr);
// } else {
// UVersionInfo cldrVersion;
_versionFromUString(versionArray, cldrver);
// strcpy(tmp, "type=\"cldr\" version=\"");
// u_versionToString(cldrVersion, tmp+strlen(tmp));
// strcat(tmp, "\"");
// XMLElement icuData(xf, "feature", tmp, true);
}
ures_close(resindx);
}
}
int could_open(const char *locale, char *comments) {
char tmp[200];
UResourceBundle *rb = nullptr;
UErrorCode status = U_ZERO_ERROR;
rb = ures_open(nullptr, locale, &status);
if(U_FAILURE(status)) {
sprintf(tmp, " open:%s", u_errorName(status));
strcat(comments, tmp);
return 0;
} else {
ures_close(rb);
sprintf(tmp, " open:%s", u_errorNameShort(status));
strcat(comments, tmp);
return 1;
}
}
int col_could_open(const char *locale, char *comments) {
char tmp[200];
UCollator *rb = nullptr;
UErrorCode status = U_ZERO_ERROR;
rb = ucol_open(locale, &status);
if(U_FAILURE(status)) {
sprintf(tmp, " open:%s", u_errorName(status));
/*strcat(comments, tmp); */
return 0;
} else {
ucol_close(rb);
sprintf(tmp, " open:%s", u_errorNameShort(status));
/* strcat(comments, tmp); */
return 1;
}
}
const char *UDateFormatSymbolType_name(UDateFormatSymbolType i) {
switch(i) {
case UDAT_ERAS: return "UDAT_ERAS"; break;
/** The month names, for example February */
case UDAT_MONTHS: return "UDAT_MONTHS"; break;
/** The short month names, for example Feb. */
case UDAT_SHORT_MONTHS: return "UDAT_SHORT_MONTHS"; break;
/** The weekday names, for example Monday */
case UDAT_WEEKDAYS: return "UDAT_WEEKDAYS"; break;
/** The short weekday names, for example Mon. */
case UDAT_SHORT_WEEKDAYS: return "UDAT_SHORT_WEEKDAYS"; break;
/** The AM/PM names, for example AM */
case UDAT_AM_PMS: return "UDAT_AM_PMS"; break;
/** The localized characters */
case UDAT_LOCALIZED_CHARS: return "UDAT_LOCALIZED_CHARS"; break;
/** The long era names, for example Anno Domini */
#if U_ICU_VERSION_MAJOR_NUM>3 || U_ICU_VERSION_MAJOR_NUM>3
case UDAT_ERA_NAMES: return "UDAT_ERA_NAMES"; break;
#endif
#if U_ICU_VERSION_MAJOR_NUM>3 || U_ICU_VERSION_MAJOR_NUM>3
/** The narrow month names, for example F */
case UDAT_NARROW_MONTHS: return "UDAT_NARROW_MONTHS"; break;
/** The narrow weekday names, for example N */
case UDAT_NARROW_WEEKDAYS: return "UDAT_NARROW_WEEKDAYS"; break;
/** Standalone context versions of months */
case UDAT_STANDALONE_MONTHS: return "UDAT_STANDALONE_MONTHS"; break;
case UDAT_STANDALONE_SHORT_MONTHS: return "UDAT_STANDALONE_SHORT_MONTHS"; break;
case UDAT_STANDALONE_NARROW_MONTHS: return "UDAT_STANDALONE_NARROW_MONTHS"; break;
/** Standalone context versions of weekdays */
case UDAT_STANDALONE_WEEKDAYS: return "UDAT_STANDALONE_WEEKDAYS"; break;
case UDAT_STANDALONE_SHORT_WEEKDAYS: return "UDAT_STANDALONE_SHORT_WEEKDAYS"; break;
case UDAT_STANDALONE_NARROW_WEEKDAYS: return "UDAT_STANDALONE_NARROW_WEEKDAYS"; break;
#endif
#if U_ICU_VERSION_MAJOR_NUM>3 || U_ICU_VERSION_MAJOR_NUM>4
/** The quarters, for example 1st Quarter */
case UDAT_QUARTERS: return "UDAT_QUARTERS"; break;
/** The short quarter names, for example Q1 */
case UDAT_SHORT_QUARTERS: return "UDAT_SHORT_QUARTERS"; break;
/** Standalone context versions of quarters */
case UDAT_STANDALONE_QUARTERS: return "UDAT_STANDALONE_QUARTERS"; break;
case UDAT_STANDALONE_SHORT_QUARTERS: return "UDAT_STANDALONE_SHORT_QUARTERS"; break;
#endif
}
return "<Unknown>";
}
UDateFormatSymbolType scanArray[] = {
UDAT_ERAS,
/** The month names, for example February */
UDAT_MONTHS,
/** The short month names, for example Feb. */
UDAT_SHORT_MONTHS,
/** The weekday names, for example Monday */
UDAT_WEEKDAYS,
/** The short weekday names, for example Mon. */
UDAT_SHORT_WEEKDAYS,
/** The AM/PM names, for example AM */
// UDAT_AM_PMS,
/** The localized characters */
// UDAT_LOCALIZED_CHARS,
/** The long era names, for example Anno Domini */
// UDAT_ERA_NAMES,
/** The narrow month names, for example F */
// UDAT_NARROW_MONTHS,
};
int *starts = nullptr;
char16_t ***rootdata = nullptr;
void initroot(UErrorCode *status) {
UDateFormat *fmt;
fmt = udat_open(UDAT_DEFAULT, UDAT_DEFAULT, "root", nullptr, -1,nullptr,0, status);
rootdata = (char16_t***)malloc((sizeof(scanArray)/sizeof(scanArray[0]))*sizeof(rootdata[0]));
starts = (int*)malloc((sizeof(scanArray)/sizeof(scanArray[0]))*sizeof(starts[0]));
for(int i=0;U_SUCCESS(*status)&&i<sizeof(scanArray)/sizeof(scanArray[0]);i++) {
int thisCount = udat_countSymbols(fmt, scanArray[i]);
rootdata[i]=0;
rootdata[i]=(char16_t**)malloc(thisCount*sizeof(rootdata[i][0]));
switch(scanArray[i]) {
case UDAT_WEEKDAYS:
case UDAT_SHORT_WEEKDAYS:
starts[i]=1;
break;
default:
starts[i]=0;
}
for(int j=starts[i];U_SUCCESS(*status)&&j<thisCount;j++) {
rootdata[i][j]=(char16_t*)malloc(1024);
int sz =
udat_getSymbols(fmt,
scanArray[i],
j,
rootdata[i][j],
1024,
status);
}
}
}
/* Format the date */
static void
date(const char16_t *tz,
UDateFormatStyle style,
char *format,
const char *locale, char *comments,
UErrorCode *status)
{
char16_t *s = 0;
int32_t len = 0;
UDateFormat *fmt;
char16_t uFormat[100];
char tmp[200];
int tc=0; // total count
int tf=0; // total found
int tl = 0;
fmt = udat_open(style, style, locale, tz, -1,nullptr,0, status);
if ( format != nullptr ) {
u_charsToUChars(format,uFormat,strlen(format)),
udat_applyPattern(fmt,false,uFormat,strlen(format));
}
len = udat_format(fmt, ucal_getNow(), 0, len, 0, status);
if(*status == U_BUFFER_OVERFLOW_ERROR) {
*status = U_ZERO_ERROR;
s = (char16_t*) malloc(sizeof(char16_t) * (len+1));
if(s == 0) goto finish;
udat_format(fmt, ucal_getNow(), s, len + 1, 0, status);
if(U_FAILURE(*status)) goto finish;
}
/* print the date string */
//uprint(s, stdout, status);
/* print a trailing newline */
//printf("\n");
/* count bits */
char16_t outbuf[1024];
for(int i=0;U_SUCCESS(*status)&&i<sizeof(scanArray)/sizeof(scanArray[0]);i++) {
int thisCount = udat_countSymbols(fmt, scanArray[i]);
tc += thisCount;
for(int j=starts[i];U_SUCCESS(*status)&&j<thisCount;j++) {
*status = U_ZERO_ERROR;
int sz =
udat_getSymbols(fmt,
scanArray[i],
j,
outbuf,
1024,
status);
if(U_SUCCESS(*status)) { tf++; tl += u_strlen(outbuf); }
//if(!u_strcmp(outbuf,rootdata[i][j])) {
if(*status != U_ZERO_ERROR) {
#if 0
fprintf(stderr, "<!-- %s: err: data %s:%d:%d is missing: %X... -->\n", locale, UDateFormatSymbolType_name(scanArray[i]), i, j, outbuf[0]);
#endif
sprintf(tmp, " missing: %s#%d-%s ", UDateFormatSymbolType_name(scanArray[i]), j, u_errorNameShort(*status));
*status = U_MISSING_RESOURCE_ERROR;
strcat(comments, tmp);
}
}
}
finish:
sprintf(tmp, " syms:%d/%d#%d:%s", tf, tc, tl, u_errorNameShort(*status));
strcat(comments,tmp);
udat_close(fmt);
free(s);
}
static void writeOkComments(XMLFile &xf, int ok, const char *comments, const char *locale) {
char tmp[2000];
tmp[0]=0;
if(ok) {
if(!comments||!*comments) {
strcpy(tmp,locale);
strcat(tmp, " ");
} else {
sprintf(tmp, "%s <!-- %s -->", locale, comments);
}
} else if(comments&&*comments) {
sprintf(tmp, "<!-- !! %s: %s -->", locale, comments);
}
if(tmp&&*tmp) {
xf.writeln(tmp);
}
}
int could_fmt_dow(const char *locale, char *comments) {
char tmp[200];
// UResourceBundle *rb = nullptr;
UErrorCode status = U_ZERO_ERROR;
date(nullptr,
UDAT_LONG,
nullptr,
locale, comments,
&status);
if(U_FAILURE(status) || status != U_ZERO_ERROR) {
sprintf(tmp, " fmt:%s", u_errorNameShort(status));
strcat(comments, tmp);
return 0;
} else {
sprintf(tmp, " fmt:%s", u_errorNameShort(status));
strcat(comments, tmp);
return 1;
}
}
void probeCapability(XMLFile& xf, const char *locale) {
char comments[1000];
int ok=1;
int rc =0;
//fprintf(stderr, "PROBE: %s\n", locale);
comments[0]=0;
if(!could_open(locale, comments)) {
ok = 0;
}
#if (U_ICU_VERSION_MAJOR_NUM > 2) || ((U_ICU_VERSION_MAJOR_NUM>1)&&(U_ICU_VERSION_MINOR_NUM>2))
if(!could_fmt_dow(locale, comments)) {
ok = 0;
}
#endif
writeOkComments(xf,ok, comments,locale);
}
void probeColCapability(XMLFile& xf, const char *locale) {
char comments[1000];
int ok=1;
int rc =0;
UErrorCode status = U_ZERO_ERROR;
//fprintf(stderr, "PROBE: %s\n", locale);
comments[0]=0;
if(!col_could_open(locale, comments)) {
ok = 0;
}
/*
if(!col_could_fmt_dow(locale, comments)) {
ok = 0;
}
*/
writeOkComments(xf,ok, comments,locale);
}
int main (int argc, char ** argv) {
U_MAIN_INIT_ARGS(argc, argv);
progName = argv[0];
argc=u_parseArgs(argc, argv, sizeof(options)/sizeof(options[0]), options);
// const char *loc;
{
UErrorCode status = U_ZERO_ERROR;
#if (U_ICU_VERSION_MAJOR_NUM > 2) || ((U_ICU_VERSION_MAJOR_NUM>1)&&(U_ICU_VERSION_MINOR_NUM>5))
u_init(&status);
#else
ures_open(nullptr, "en_US", &status);
#endif
fprintf(stderr, " Init: %s\n", u_errorName(status));
}
{
UErrorCode is = U_ZERO_ERROR;
#if (U_ICU_VERSION_MAJOR_NUM > 2) || ((U_ICU_VERSION_MAJOR_NUM>1)&&(U_ICU_VERSION_MINOR_NUM>2))
initroot(&is);
fprintf(stderr, "Init: %s\n", u_errorNameShort(is));
#endif
}
if(argc<0) {
// Unrecognized option
fprintf(stderr, "error in command line argument \"%s\"\n", argv[-argc]);
usageAndDie(U_ILLEGAL_ARGUMENT_ERROR);
}
if(options[0].doesOccur || options[1].doesOccur) {
// -? or -h for help.
usageAndDie(0);
}
{
char tmp[200];
XMLFile xf(stdout);
{
xf.writeln("<!DOCTYPE icuInfo SYSTEM \"http://icu-project.org/dtd/icumeta.dtd\">");
XMLElement icuInfo(xf, "icuInfo");
XMLElement icuProducts(xf, "icuProducts");
XMLElement icuProduct(xf, "icuProduct", "type=\"icu4c\"");
XMLElement releases(xf, "releases");
sprintf(tmp, "version=\"%s\"", U_ICU_VERSION);
XMLElement release(xf, "release", tmp);
XMLElement capabilities(xf, "capabilities");
{
sprintf(tmp, "type=\"unicode\" version=\"%s\"",
U_UNICODE_VERSION);
XMLElement icuData(xf, "feature", tmp, true);
}
{
UCollator *col;
char ucavers[200];
UVersionInfo vers;
UErrorCode status = U_ZERO_ERROR;
col = ucol_open("root", &status);
#if (U_ICU_VERSION_MAJOR_NUM>2) || ((U_ICU_VERSION_MAJOR_NUM>1)&&(U_ICU_VERSION_MINOR_NUM>7))
ucol_getUCAVersion(col, vers);
u_versionToString(vers, ucavers);
#else
strcpy(ucavers, "???");
#endif
sprintf(tmp, "type=\"uca\" version=\"%s\"",
ucavers);
XMLElement icuData(xf, "feature", tmp, true);
ucol_close(col);
}
#if (U_ICU_VERSION_MAJOR_NUM>3) || ((U_ICU_VERSION_MAJOR_NUM > 2) && (U_ICU_VERSION_MINOR_NUM >7))
{
const char *tzvers;
UErrorCode status = U_ZERO_ERROR;
tzvers = ucal_getTZDataVersion(&status);
sprintf(tmp, "type=\"tz\" version=\"%s\"",
tzvers);
XMLElement icuData(xf, "feature", tmp, true);
}
#endif
{
UErrorCode status = U_ZERO_ERROR;
UVersionInfo cldrVersion;
_getCLDRVersionDirect(cldrVersion, &status);
if(U_FAILURE(status)) {
UErrorCode subStatus = U_ZERO_ERROR;
_getCLDRVersionOld(cldrVersion, &subStatus);
if(U_SUCCESS(subStatus)) {
status = subStatus;
}
}
if(U_FAILURE(status)) {
fprintf(stderr, "Err: could not get CLDR Version, %s\n", u_errorName(status));
fflush(stderr);
} else {
strcpy(tmp, "type=\"cldr\" version=\"");
u_versionToString(cldrVersion, tmp+strlen(tmp));
strcat(tmp, "\"");
XMLElement icuData(xf, "feature", tmp, true);
}
}
if(1) {
int n = uloc_countAvailable();
sprintf(tmp, "type=\"formatting\" total=\"%d\" version=\"%s\"",
n,
"???");
XMLElement icuData(xf, "feature", tmp);
// probeCapability(xf, "root");
for(int j=0;j<n;j++) {
probeCapability(xf, uloc_getAvailable(j));
}
}
if(1) {
int n = ucol_countAvailable();
sprintf(tmp, "type=\"collation\" total=\"%d\" version=\"%s\"",
n,
"???");
XMLElement icuData(xf, "feature", tmp);
// probeCapability(xf, "root");
for(int j=0;j<n;j++) {
probeColCapability(xf, ucol_getAvailable(j));
}
}
}
}
return 0;
}

View file

@ -1,493 +0,0 @@
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<icuInfo>
<icuProducts>
<icuProduct type="icu4c">
<releases>
<release version="2.2">
<capabilities>
<feature type="unicode" version="3.2"/>
<feature type="uca" version="???"/>
<feature type="formatting" total="235" version="???">
af <!-- open:ok -->
af_ZA <!-- open:ok -->
am <!-- open:ok -->
am_ET <!-- open:ok -->
ar <!-- open:ok -->
ar_AE <!-- open:ok -->
ar_BH <!-- open:ok -->
ar_DZ <!-- open:ok -->
ar_EG <!-- open:ok -->
ar_IQ <!-- open:ok -->
ar_IN <!-- open:ok -->
ar_JO <!-- open:ok -->
ar_KW <!-- open:ok -->
ar_LB <!-- open:ok -->
ar_LY <!-- open:ok -->
ar_MA <!-- open:ok -->
ar_OM <!-- open:ok -->
ar_QA <!-- open:ok -->
ar_SA <!-- open:ok -->
ar_SD <!-- open:ok -->
ar_SY <!-- open:ok -->
ar_TN <!-- open:ok -->
ar_YE <!-- open:ok -->
be <!-- open:ok -->
be_BY <!-- open:ok -->
bg <!-- open:ok -->
bg_BG <!-- open:ok -->
bn <!-- open:ok -->
bn_IN <!-- open:ok -->
ca <!-- open:ok -->
ca_ES <!-- open:ok -->
ca_ES_PREEURO <!-- open:ok -->
cs <!-- open:ok -->
cs_CZ <!-- open:ok -->
da <!-- open:ok -->
da_DK <!-- open:ok -->
de <!-- open:ok -->
de__PHONEBOOK <!-- open:ok -->
de_AT <!-- open:ok -->
de_AT_PREEURO <!-- open:ok -->
de_BE <!-- open:ok -->
de_CH <!-- open:ok -->
de_DE <!-- open:ok -->
de_DE_PREEURO <!-- open:ok -->
de_LU <!-- open:ok -->
de_LU_PREEURO <!-- open:ok -->
el <!-- open:ok -->
el_GR <!-- open:ok -->
el_GR_PREEURO <!-- open:ok -->
en <!-- open:ok -->
en_AU <!-- open:ok -->
en_BE <!-- open:ok -->
en_BE_PREEURO <!-- open:ok -->
en_BW <!-- open:ok -->
en_CA <!-- open:ok -->
en_GB <!-- open:ok -->
en_GB_EURO <!-- open:ok -->
en_HK <!-- open:ok -->
en_IE <!-- open:ok -->
en_IE_PREEURO <!-- open:ok -->
en_IN <!-- open:ok -->
en_NZ <!-- open:ok -->
en_PH <!-- open:ok -->
en_SG <!-- open:ok -->
en_MT <!-- open:ok -->
en_US <!-- open:ok -->
en_US_POSIX <!-- open:ok -->
en_VI <!-- open:ok -->
en_ZA <!-- open:ok -->
en_ZW <!-- open:ok -->
eo <!-- open:ok -->
es <!-- open:ok -->
es__TRADITIONAL <!-- open:ok -->
es_AR <!-- open:ok -->
es_BO <!-- open:ok -->
es_CL <!-- open:ok -->
es_CO <!-- open:ok -->
es_CR <!-- open:ok -->
es_DO <!-- open:ok -->
es_EC <!-- open:ok -->
es_ES <!-- open:ok -->
es_ES_PREEURO <!-- open:ok -->
es_GT <!-- open:ok -->
es_HN <!-- open:ok -->
es_MX <!-- open:ok -->
es_NI <!-- open:ok -->
es_PA <!-- open:ok -->
es_PE <!-- open:ok -->
es_PR <!-- open:ok -->
es_PY <!-- open:ok -->
es_SV <!-- open:ok -->
es_US <!-- open:ok -->
es_UY <!-- open:ok -->
es_VE <!-- open:ok -->
et <!-- open:ok -->
et_EE <!-- open:ok -->
eu <!-- open:ok -->
eu_ES <!-- open:ok -->
eu_ES_PREEURO <!-- open:ok -->
fa <!-- open:ok -->
fa_IN <!-- open:ok -->
fa_IR <!-- open:ok -->
fi <!-- open:ok -->
fi_FI <!-- open:ok -->
fi_FI_PREEURO <!-- open:ok -->
fo <!-- open:ok -->
fo_FO <!-- open:ok -->
fr <!-- open:ok -->
fr_BE <!-- open:ok -->
fr_BE_PREEURO <!-- open:ok -->
fr_CA <!-- open:ok -->
fr_CH <!-- open:ok -->
fr_FR <!-- open:ok -->
fr_FR_PREEURO <!-- open:ok -->
fr_LU <!-- open:ok -->
fr_LU_PREEURO <!-- open:ok -->
ga <!-- open:ok -->
ga_IE <!-- open:ok -->
ga_IE_PREEURO <!-- open:ok -->
gl <!-- open:ok -->
gl_ES <!-- open:ok -->
gl_ES_PREEURO <!-- open:ok -->
gv <!-- open:ok -->
gv_GB <!-- open:ok -->
gu <!-- open:ok -->
gu_IN <!-- open:ok -->
he <!-- open:ok -->
he_IL <!-- open:ok -->
hi <!-- open:ok -->
hi_IN <!-- open:ok -->
hi__DIRECT <!-- open:ok -->
hr <!-- open:ok -->
hr_HR <!-- open:ok -->
hu <!-- open:ok -->
hu_HU <!-- open:ok -->
hy <!-- open:ok -->
hy_AM <!-- open:ok -->
hy_AM_REVISED <!-- open:ok -->
id <!-- open:ok -->
id_ID <!-- open:ok -->
is <!-- open:ok -->
is_IS <!-- open:ok -->
it <!-- open:ok -->
it_CH <!-- open:ok -->
it_IT <!-- open:ok -->
it_IT_PREEURO <!-- open:ok -->
ja <!-- open:ok -->
ja_JP <!-- open:ok -->
kl <!-- open:ok -->
kl_GL <!-- open:ok -->
ko <!-- open:ok -->
ko_KR <!-- open:ok -->
kok <!-- open:ok -->
kok_IN <!-- open:ok -->
kn <!-- open:ok -->
kn_IN <!-- open:ok -->
kw <!-- open:ok -->
kw_GB <!-- open:ok -->
lt <!-- open:ok -->
lt_LT <!-- open:ok -->
lv <!-- open:ok -->
lv_LV <!-- open:ok -->
mk <!-- open:ok -->
mk_MK <!-- open:ok -->
mr <!-- open:ok -->
mr_IN <!-- open:ok -->
mt <!-- open:ok -->
mt_MT <!-- open:ok -->
nb <!-- open:ok -->
nb_NO <!-- open:ok -->
nl <!-- open:ok -->
nl_BE <!-- open:ok -->
nl_BE_PREEURO <!-- open:ok -->
nl_NL <!-- open:ok -->
nl_NL_PREEURO <!-- open:ok -->
nn <!-- open:ok -->
nn_NO <!-- open:ok -->
om <!-- open:ok -->
om_ET <!-- open:ok -->
om_KE <!-- open:ok -->
pl <!-- open:ok -->
pl_PL <!-- open:ok -->
pt <!-- open:ok -->
pt_BR <!-- open:ok -->
pt_PT <!-- open:ok -->
pt_PT_PREEURO <!-- open:ok -->
ro <!-- open:ok -->
ro_RO <!-- open:ok -->
ru <!-- open:ok -->
ru_RU <!-- open:ok -->
ru_UA <!-- open:ok -->
sh <!-- open:ok -->
sh_YU <!-- open:ok -->
sk <!-- open:ok -->
sk_SK <!-- open:ok -->
sl <!-- open:ok -->
sl_SI <!-- open:ok -->
so <!-- open:ok -->
so_DJ <!-- open:ok -->
so_ET <!-- open:ok -->
so_KE <!-- open:ok -->
so_SO <!-- open:ok -->
sq <!-- open:ok -->
sq_AL <!-- open:ok -->
sr <!-- open:ok -->
sr_YU <!-- open:ok -->
sv <!-- open:ok -->
sv_FI <!-- open:ok -->
sv_SE <!-- open:ok -->
sw <!-- open:ok -->
sw_KE <!-- open:ok -->
sw_TZ <!-- open:ok -->
ta <!-- open:ok -->
ta_IN <!-- open:ok -->
te <!-- open:ok -->
te_IN <!-- open:ok -->
th <!-- open:ok -->
th_TH <!-- open:ok -->
ti <!-- open:ok -->
ti_ET <!-- open:ok -->
ti_ER <!-- open:ok -->
tr <!-- open:ok -->
tr_TR <!-- open:ok -->
uk <!-- open:ok -->
uk_UA <!-- open:ok -->
vi <!-- open:ok -->
vi_VN <!-- open:ok -->
zh <!-- open:ok -->
zh__PINYIN <!-- open:ok -->
zh_CN <!-- open:ok -->
zh_HK <!-- open:ok -->
zh_MO <!-- open:ok -->
zh_SG <!-- open:ok -->
zh_TW <!-- open:ok -->
zh_TW_STROKE <!-- open:ok -->
</feature>
<feature type="collation" total="235" version="???">
af
af_ZA
am
am_ET
ar
ar_AE
ar_BH
ar_DZ
ar_EG
ar_IQ
ar_IN
ar_JO
ar_KW
ar_LB
ar_LY
ar_MA
ar_OM
ar_QA
ar_SA
ar_SD
ar_SY
ar_TN
ar_YE
be
be_BY
bg
bg_BG
bn
bn_IN
ca
ca_ES
ca_ES_PREEURO
cs
cs_CZ
da
da_DK
de
de__PHONEBOOK
de_AT
de_AT_PREEURO
de_BE
de_CH
de_DE
de_DE_PREEURO
de_LU
de_LU_PREEURO
el
el_GR
el_GR_PREEURO
en
en_AU
en_BE
en_BE_PREEURO
en_BW
en_CA
en_GB
en_GB_EURO
en_HK
en_IE
en_IE_PREEURO
en_IN
en_NZ
en_PH
en_SG
en_MT
en_US
en_US_POSIX
en_VI
en_ZA
en_ZW
eo
es
es__TRADITIONAL
es_AR
es_BO
es_CL
es_CO
es_CR
es_DO
es_EC
es_ES
es_ES_PREEURO
es_GT
es_HN
es_MX
es_NI
es_PA
es_PE
es_PR
es_PY
es_SV
es_US
es_UY
es_VE
et
et_EE
eu
eu_ES
eu_ES_PREEURO
fa
fa_IN
fa_IR
fi
fi_FI
fi_FI_PREEURO
fo
fo_FO
fr
fr_BE
fr_BE_PREEURO
fr_CA
fr_CH
fr_FR
fr_FR_PREEURO
fr_LU
fr_LU_PREEURO
ga
ga_IE
ga_IE_PREEURO
gl
gl_ES
gl_ES_PREEURO
gv
gv_GB
gu
gu_IN
he
he_IL
hi
hi_IN
hi__DIRECT
hr
hr_HR
hu
hu_HU
hy
hy_AM
hy_AM_REVISED
id
id_ID
is
is_IS
it
it_CH
it_IT
it_IT_PREEURO
ja
ja_JP
kl
kl_GL
ko
ko_KR
kok
kok_IN
kn
kn_IN
kw
kw_GB
lt
lt_LT
lv
lv_LV
mk
mk_MK
mr
mr_IN
mt
mt_MT
nb
nb_NO
nl
nl_BE
nl_BE_PREEURO
nl_NL
nl_NL_PREEURO
nn
nn_NO
om
om_ET
om_KE
pl
pl_PL
pt
pt_BR
pt_PT
pt_PT_PREEURO
ro
ro_RO
ru
ru_RU
ru_UA
sh
sh_YU
sk
sk_SK
sl
sl_SI
so
so_DJ
so_ET
so_KE
so_SO
sq
sq_AL
sr
sr_YU
sv
sv_FI
sv_SE
sw
sw_KE
sw_TZ
ta
ta_IN
te
te_IN
th
th_TH
ti
ti_ET
ti_ER
tr
tr_TR
uk
uk_UA
vi
vi_VN
zh
zh__PINYIN
zh_CN
zh_HK
zh_MO
zh_SG
zh_TW
zh_TW_STROKE
</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,461 +0,0 @@
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<icuInfo>
<icuProducts>
<icuProduct type="icu4c">
<releases>
<release version="3.0">
<capabilities>
<feature type="unicode" version="4.0.1"/>
<feature type="uca" version="4.0"/>
<feature type="formatting" total="219" version="???">
af <!-- open:ok syms:40/42#189:ok fmt:ok -->
af_ZA <!-- open:ok syms:40/42#189:ok fmt:ok -->
am <!-- open:ok syms:40/42#131:ok fmt:ok -->
am_ET <!-- open:ok syms:40/42#131:ok fmt:ok -->
ar <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_AE <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_BH <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_DZ <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_EG <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_IN <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_IQ <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_JO <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_KW <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_LB <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_LY <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_MA <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_OM <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_QA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SD <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_SY <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_TN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_YE <!-- open:ok syms:40/42#220:ok fmt:ok -->
be <!-- open:ok syms:40/42#193:ok fmt:ok -->
be_BY <!-- open:ok syms:40/42#193:ok fmt:ok -->
bg <!-- open:ok syms:40/42#201:ok fmt:ok -->
bg_BG <!-- open:ok syms:40/42#201:ok fmt:ok -->
bn <!-- open:ok syms:40/42#238:ok fmt:ok -->
bn_IN <!-- open:ok syms:40/42#238:ok fmt:ok -->
ca <!-- open:ok syms:40/42#196:ok fmt:ok -->
ca_ES <!-- open:ok syms:40/42#196:ok fmt:ok -->
cs <!-- open:ok syms:40/42#167:ok fmt:ok -->
cs_CZ <!-- open:ok syms:40/42#167:ok fmt:ok -->
da <!-- open:ok syms:40/42#183:ok fmt:ok -->
da_DK <!-- open:ok syms:40/42#183:ok fmt:ok -->
de <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_AT <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_BE <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_CH <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_DE <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_LU <!-- open:ok syms:40/42#188:ok fmt:ok -->
el <!-- open:ok syms:40/42#218:ok fmt:ok -->
el_GR <!-- open:ok syms:40/42#218:ok fmt:ok -->
en <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_AU <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BW <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_CA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_GB <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_HK <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IN <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_MT <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_NZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_PH <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_SG <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US_POSIX <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_VI <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZW <!-- open:ok syms:40/42#185:ok fmt:ok -->
eo <!-- open:ok syms:40/42#177:ok fmt:ok -->
es <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_AR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_BO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CL <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_DO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_EC <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_ES <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_GT <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_HN <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_MX <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_NI <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PA <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PE <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_SV <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_US <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_UY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_VE <!-- open:ok syms:40/42#188:ok fmt:ok -->
et <!-- open:ok syms:40/42#201:ok fmt:ok -->
et_EE <!-- open:ok syms:40/42#201:ok fmt:ok -->
eu <!-- open:ok syms:40/42#197:ok fmt:ok -->
eu_ES <!-- open:ok syms:40/42#197:ok fmt:ok -->
fa <!-- open:ok syms:40/42#158:ok fmt:ok -->
fa_AF <!-- open:ok syms:40/42#156:ok fmt:ok -->
fa_IR <!-- open:ok syms:40/42#158:ok fmt:ok -->
fi <!-- open:ok syms:40/42#232:ok fmt:ok -->
fi_FI <!-- open:ok syms:40/42#232:ok fmt:ok -->
fo <!-- open:ok syms:40/42#200:ok fmt:ok -->
fo_FO <!-- open:ok syms:40/42#200:ok fmt:ok -->
fr <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_BE <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_CA <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_CH <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_FR <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_LU <!-- open:ok syms:40/42#215:ok fmt:ok -->
ga <!-- open:ok syms:40/42#247:ok fmt:ok -->
ga_IE <!-- open:ok syms:40/42#247:ok fmt:ok -->
gl <!-- open:ok syms:40/42#179:ok fmt:ok -->
gl_ES <!-- open:ok syms:40/42#179:ok fmt:ok -->
gu <!-- open:ok syms:40/42#206:ok fmt:ok -->
gu_IN <!-- open:ok syms:40/42#206:ok fmt:ok -->
gv <!-- open:ok syms:40/42#295:ok fmt:ok -->
gv_GB <!-- open:ok syms:40/42#295:ok fmt:ok -->
he <!-- open:ok syms:40/42#168:ok fmt:ok -->
he_IL <!-- open:ok syms:40/42#168:ok fmt:ok -->
hi <!-- open:ok syms:40/42#207:ok fmt:ok -->
hi_IN <!-- open:ok syms:40/42#207:ok fmt:ok -->
hr <!-- open:ok syms:40/42#199:ok fmt:ok -->
hr_HR <!-- open:ok syms:40/42#199:ok fmt:ok -->
hu <!-- open:ok syms:40/42#203:ok fmt:ok -->
hu_HU <!-- open:ok syms:40/42#203:ok fmt:ok -->
hy <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM_REVISED <!-- open:ok syms:40/42#204:ok fmt:ok -->
id <!-- open:ok syms:40/42#173:ok fmt:ok -->
id_ID <!-- open:ok syms:40/42#173:ok fmt:ok -->
is <!-- open:ok syms:40/42#206:ok fmt:ok -->
is_IS <!-- open:ok syms:40/42#206:ok fmt:ok -->
it <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_CH <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_IT <!-- open:ok syms:40/42#193:ok fmt:ok -->
ja <!-- open:ok syms:40/42#75:ok fmt:ok -->
ja_JP <!-- open:ok syms:40/42#75:ok fmt:ok -->
kk <!-- open:ok syms:40/42#193:ok fmt:ok -->
kk_KZ <!-- open:ok syms:40/42#193:ok fmt:ok -->
kl <!-- open:ok syms:40/42#237:ok fmt:ok -->
kl_GL <!-- open:ok syms:40/42#237:ok fmt:ok -->
kn <!-- open:ok syms:40/42#220:ok fmt:ok -->
kn_IN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ko <!-- open:ok syms:40/42#185:ok fmt:ok -->
ko_KR <!-- open:ok syms:40/42#185:ok fmt:ok -->
kok <!-- open:ok syms:40/42#243:ok fmt:ok -->
kok_IN <!-- open:ok syms:40/42#243:ok fmt:ok -->
kw <!-- open:ok syms:40/42#224:ok fmt:ok -->
kw_GB <!-- open:ok syms:40/42#224:ok fmt:ok -->
lt <!-- open:ok syms:40/42#230:ok fmt:ok -->
lt_LT <!-- open:ok syms:40/42#230:ok fmt:ok -->
lv <!-- open:ok syms:40/42#204:ok fmt:ok -->
lv_LV <!-- open:ok syms:40/42#204:ok fmt:ok -->
mk <!-- open:ok syms:40/42#209:ok fmt:ok -->
mk_MK <!-- open:ok syms:40/42#209:ok fmt:ok -->
mr <!-- open:ok syms:40/42#222:ok fmt:ok -->
mr_IN <!-- open:ok syms:40/42#222:ok fmt:ok -->
ms <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_BN <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_MY <!-- open:ok syms:40/42#169:ok fmt:ok -->
mt <!-- open:ok syms:40/42#190:ok fmt:ok -->
mt_MT <!-- open:ok syms:40/42#190:ok fmt:ok -->
nb <!-- open:ok syms:40/42#175:ok fmt:ok -->
nb_NO <!-- open:ok syms:40/42#175:ok fmt:ok -->
nl <!-- open:ok syms:40/42#192:ok fmt:ok -->
nl_BE <!-- open:ok syms:40/42#192:ok fmt:ok -->
nl_NL <!-- open:ok syms:40/42#192:ok fmt:ok -->
nn <!-- open:ok syms:40/42#175:ok fmt:ok -->
nn_NO <!-- open:ok syms:40/42#175:ok fmt:ok -->
om <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_ET <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_KE <!-- open:ok syms:40/42#208:ok fmt:ok -->
pa <!-- open:ok syms:40/42#190:ok fmt:ok -->
pa_IN <!-- open:ok syms:40/42#190:ok fmt:ok -->
pl <!-- open:ok syms:40/42#195:ok fmt:ok -->
pl_PL <!-- open:ok syms:40/42#195:ok fmt:ok -->
ps <!-- open:ok syms:40/42#154:ok fmt:ok -->
ps_AF <!-- open:ok syms:40/42#154:ok fmt:ok -->
pt <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_BR <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_PT <!-- open:ok syms:40/42#214:ok fmt:ok -->
ro <!-- open:ok syms:40/42#182:ok fmt:ok -->
ro_RO <!-- open:ok syms:40/42#182:ok fmt:ok -->
ru <!-- open:ok syms:40/42#186:ok fmt:ok -->
ru_RU <!-- open:ok syms:40/42#186:ok fmt:ok -->
ru_UA <!-- open:ok syms:40/42#186:ok fmt:ok -->
sh <!-- open:ok syms:40/42#188:ok fmt:ok -->
sh_YU <!-- open:ok syms:40/42#188:ok fmt:ok -->
sk <!-- open:ok syms:40/42#178:ok fmt:ok -->
sk_SK <!-- open:ok syms:40/42#178:ok fmt:ok -->
sl <!-- open:ok syms:40/42#189:ok fmt:ok -->
sl_SI <!-- open:ok syms:40/42#189:ok fmt:ok -->
so <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_DJ <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_ET <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_KE <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_SO <!-- open:ok syms:40/42#298:ok fmt:ok -->
sq <!-- open:ok syms:40/42#186:ok fmt:ok -->
sq_AL <!-- open:ok syms:40/42#186:ok fmt:ok -->
sr <!-- open:ok syms:40/42#191:ok fmt:ok -->
sr_YU <!-- open:ok syms:40/42#191:ok fmt:ok -->
sv <!-- open:ok syms:40/42#177:ok fmt:ok -->
sv_FI <!-- open:ok syms:40/42#177:ok fmt:ok -->
sv_SE <!-- open:ok syms:40/42#177:ok fmt:ok -->
sw <!-- open:ok syms:40/42#186:ok fmt:ok -->
sw_KE <!-- open:ok syms:40/42#186:ok fmt:ok -->
sw_TZ <!-- open:ok syms:40/42#186:ok fmt:ok -->
ta <!-- open:ok syms:40/42#183:ok fmt:ok -->
ta_IN <!-- open:ok syms:40/42#183:ok fmt:ok -->
te <!-- open:ok syms:40/42#231:ok fmt:ok -->
te_IN <!-- open:ok syms:40/42#231:ok fmt:ok -->
th <!-- open:ok syms:40/42#236:ok fmt:ok -->
th_TH <!-- open:ok syms:40/42#236:ok fmt:ok -->
ti <!-- open:ok syms:40/42#133:ok fmt:ok -->
ti_ER <!-- open:ok syms:40/42#125:ok fmt:ok -->
ti_ET <!-- open:ok syms:40/42#133:ok fmt:ok -->
tr <!-- open:ok syms:40/42#171:ok fmt:ok -->
tr_TR <!-- open:ok syms:40/42#171:ok fmt:ok -->
uk <!-- open:ok syms:40/42#185:ok fmt:ok -->
uk_UA <!-- open:ok syms:40/42#185:ok fmt:ok -->
vi <!-- open:ok syms:40/42#267:ok fmt:ok -->
vi_VN <!-- open:ok syms:40/42#267:ok fmt:ok -->
zh <!-- open:ok syms:40/42#85:ok fmt:ok -->
zh_CN <!-- open:ok syms:40/42#85:ok fmt:ok -->
zh_HK <!-- open:ok syms:40/42#86:ok fmt:ok -->
zh_MO <!-- open:ok syms:40/42#86:ok fmt:ok -->
zh_SG <!-- open:ok syms:40/42#85:ok fmt:ok -->
zh_TW <!-- open:ok syms:40/42#85:ok fmt:ok -->
</feature>
<feature type="collation" total="219" version="???">
af
af_ZA
am
am_ET
ar
ar_AE
ar_BH
ar_DZ
ar_EG
ar_IN
ar_IQ
ar_JO
ar_KW
ar_LB
ar_LY
ar_MA
ar_OM
ar_QA
ar_SA
ar_SD
ar_SY
ar_TN
ar_YE
be
be_BY
bg
bg_BG
bn
bn_IN
ca
ca_ES
cs
cs_CZ
da
da_DK
de
de_AT
de_BE
de_CH
de_DE
de_LU
el
el_GR
en
en_AU
en_BE
en_BW
en_CA
en_GB
en_HK
en_IE
en_IN
en_MT
en_NZ
en_PH
en_SG
en_US
en_US_POSIX
en_VI
en_ZA
en_ZW
eo
es
es_AR
es_BO
es_CL
es_CO
es_CR
es_DO
es_EC
es_ES
es_GT
es_HN
es_MX
es_NI
es_PA
es_PE
es_PR
es_PY
es_SV
es_US
es_UY
es_VE
et
et_EE
eu
eu_ES
fa
fa_AF
fa_IR
fi
fi_FI
fo
fo_FO
fr
fr_BE
fr_CA
fr_CH
fr_FR
fr_LU
ga
ga_IE
gl
gl_ES
gu
gu_IN
gv
gv_GB
he
he_IL
hi
hi_IN
hr
hr_HR
hu
hu_HU
hy
hy_AM
hy_AM_REVISED
id
id_ID
is
is_IS
it
it_CH
it_IT
ja
ja_JP
kk
kk_KZ
kl
kl_GL
kn
kn_IN
ko
ko_KR
kok
kok_IN
kw
kw_GB
lt
lt_LT
lv
lv_LV
mk
mk_MK
mr
mr_IN
ms
ms_BN
ms_MY
mt
mt_MT
nb
nb_NO
nl
nl_BE
nl_NL
nn
nn_NO
om
om_ET
om_KE
pa
pa_IN
pl
pl_PL
ps
ps_AF
pt
pt_BR
pt_PT
ro
ro_RO
ru
ru_RU
ru_UA
sh
sh_YU
sk
sk_SK
sl
sl_SI
so
so_DJ
so_ET
so_KE
so_SO
sq
sq_AL
sr
sr_YU
sv
sv_FI
sv_SE
sw
sw_KE
sw_TZ
ta
ta_IN
te
te_IN
th
th_TH
ti
ti_ER
ti_ET
tr
tr_TR
uk
uk_UA
vi
vi_VN
zh
zh_CN
zh_HK
zh_MO
zh_SG
zh_TW
</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,483 +0,0 @@
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<icuInfo>
<icuProducts>
<icuProduct type="icu4c">
<releases>
<release version="3.2">
<capabilities>
<feature type="unicode" version="4.0.1"/>
<feature type="uca" version="4.0"/>
<feature type="formatting" total="230" version="???">
af <!-- open:ok syms:40/42#189:ok fmt:ok -->
af_ZA <!-- open:ok syms:40/42#189:ok fmt:ok -->
am <!-- open:ok syms:40/42#131:ok fmt:ok -->
am_ET <!-- open:ok syms:40/42#131:ok fmt:ok -->
ar <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_AE <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_BH <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_DZ <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_EG <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_IN <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_IQ <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_JO <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_KW <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_LB <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_LY <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_MA <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_OM <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_QA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SD <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_SY <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_TN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_YE <!-- open:ok syms:40/42#220:ok fmt:ok -->
be <!-- open:ok syms:40/42#193:ok fmt:ok -->
be_BY <!-- open:ok syms:40/42#193:ok fmt:ok -->
bg <!-- open:ok syms:40/42#201:ok fmt:ok -->
bg_BG <!-- open:ok syms:40/42#201:ok fmt:ok -->
bn <!-- open:ok syms:40/42#238:ok fmt:ok -->
bn_IN <!-- open:ok syms:40/42#238:ok fmt:ok -->
ca <!-- open:ok syms:40/42#196:ok fmt:ok -->
ca_ES <!-- open:ok syms:40/42#196:ok fmt:ok -->
cs <!-- open:ok syms:40/42#167:ok fmt:ok -->
cs_CZ <!-- open:ok syms:40/42#167:ok fmt:ok -->
cy <!-- open:ok syms:40/42#222:ok fmt:ok -->
cy_GB <!-- open:ok syms:40/42#222:ok fmt:ok -->
da <!-- open:ok syms:40/42#183:ok fmt:ok -->
da_DK <!-- open:ok syms:40/42#183:ok fmt:ok -->
de <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_AT <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_BE <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_CH <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_DE <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_LU <!-- open:ok syms:40/42#188:ok fmt:ok -->
el <!-- open:ok syms:40/42#218:ok fmt:ok -->
el_GR <!-- open:ok syms:40/42#218:ok fmt:ok -->
en <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_AU <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BW <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_CA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_GB <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_HK <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IN <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_MT <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_NZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_PH <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_PK <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_SG <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US_POSIX <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_VI <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZW <!-- open:ok syms:40/42#185:ok fmt:ok -->
eo <!-- open:ok syms:40/42#177:ok fmt:ok -->
es <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_AR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_BO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CL <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_DO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_EC <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_ES <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_GT <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_HN <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_MX <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_NI <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PA <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PE <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_SV <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_US <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_UY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_VE <!-- open:ok syms:40/42#188:ok fmt:ok -->
et <!-- open:ok syms:40/42#201:ok fmt:ok -->
et_EE <!-- open:ok syms:40/42#201:ok fmt:ok -->
eu <!-- open:ok syms:40/42#197:ok fmt:ok -->
eu_ES <!-- open:ok syms:40/42#197:ok fmt:ok -->
fa <!-- open:ok syms:40/42#158:ok fmt:ok -->
fa_AF <!-- open:ok syms:40/42#156:ok fmt:ok -->
fa_IR <!-- open:ok syms:40/42#158:ok fmt:ok -->
fi <!-- open:ok syms:40/42#232:ok fmt:ok -->
fi_FI <!-- open:ok syms:40/42#232:ok fmt:ok -->
fo <!-- open:ok syms:40/42#200:ok fmt:ok -->
fo_FO <!-- open:ok syms:40/42#200:ok fmt:ok -->
fr <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_BE <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_CA <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_CH <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_FR <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_LU <!-- open:ok syms:40/42#215:ok fmt:ok -->
ga <!-- open:ok syms:40/42#247:ok fmt:ok -->
ga_IE <!-- open:ok syms:40/42#247:ok fmt:ok -->
gl <!-- open:ok syms:40/42#179:ok fmt:ok -->
gl_ES <!-- open:ok syms:40/42#179:ok fmt:ok -->
gu <!-- open:ok syms:40/42#206:ok fmt:ok -->
gu_IN <!-- open:ok syms:40/42#206:ok fmt:ok -->
gv <!-- open:ok syms:40/42#295:ok fmt:ok -->
gv_GB <!-- open:ok syms:40/42#295:ok fmt:ok -->
he <!-- open:ok syms:40/42#168:ok fmt:ok -->
he_IL <!-- open:ok syms:40/42#168:ok fmt:ok -->
hi <!-- open:ok syms:40/42#207:ok fmt:ok -->
hi_IN <!-- open:ok syms:40/42#207:ok fmt:ok -->
hr <!-- open:ok syms:40/42#199:ok fmt:ok -->
hr_HR <!-- open:ok syms:40/42#199:ok fmt:ok -->
hu <!-- open:ok syms:40/42#203:ok fmt:ok -->
hu_HU <!-- open:ok syms:40/42#203:ok fmt:ok -->
hy <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM_REVISED <!-- open:ok syms:40/42#204:ok fmt:ok -->
id <!-- open:ok syms:40/42#173:ok fmt:ok -->
id_ID <!-- open:ok syms:40/42#173:ok fmt:ok -->
is <!-- open:ok syms:40/42#206:ok fmt:ok -->
is_IS <!-- open:ok syms:40/42#206:ok fmt:ok -->
it <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_CH <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_IT <!-- open:ok syms:40/42#193:ok fmt:ok -->
ja <!-- open:ok syms:40/42#75:ok fmt:ok -->
ja_JP <!-- open:ok syms:40/42#75:ok fmt:ok -->
kk <!-- open:ok syms:40/42#193:ok fmt:ok -->
kk_KZ <!-- open:ok syms:40/42#193:ok fmt:ok -->
kl <!-- open:ok syms:40/42#237:ok fmt:ok -->
kl_GL <!-- open:ok syms:40/42#237:ok fmt:ok -->
kn <!-- open:ok syms:40/42#220:ok fmt:ok -->
kn_IN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ko <!-- open:ok syms:40/42#87:ok fmt:ok -->
ko_KR <!-- open:ok syms:40/42#87:ok fmt:ok -->
kok <!-- open:ok syms:40/42#243:ok fmt:ok -->
kok_IN <!-- open:ok syms:40/42#243:ok fmt:ok -->
kw <!-- open:ok syms:40/42#224:ok fmt:ok -->
kw_GB <!-- open:ok syms:40/42#224:ok fmt:ok -->
lt <!-- open:ok syms:40/42#230:ok fmt:ok -->
lt_LT <!-- open:ok syms:40/42#230:ok fmt:ok -->
lv <!-- open:ok syms:40/42#204:ok fmt:ok -->
lv_LV <!-- open:ok syms:40/42#204:ok fmt:ok -->
mk <!-- open:ok syms:40/42#209:ok fmt:ok -->
mk_MK <!-- open:ok syms:40/42#209:ok fmt:ok -->
ml <!-- open:ok syms:40/42#197:ok fmt:ok -->
ml_IN <!-- open:ok syms:40/42#197:ok fmt:ok -->
mr <!-- open:ok syms:40/42#222:ok fmt:ok -->
mr_IN <!-- open:ok syms:40/42#222:ok fmt:ok -->
ms <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_BN <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_MY <!-- open:ok syms:40/42#169:ok fmt:ok -->
mt <!-- open:ok syms:40/42#190:ok fmt:ok -->
mt_MT <!-- open:ok syms:40/42#190:ok fmt:ok -->
nb <!-- open:ok syms:40/42#175:ok fmt:ok -->
nb_NO <!-- open:ok syms:40/42#175:ok fmt:ok -->
nl <!-- open:ok syms:40/42#192:ok fmt:ok -->
nl_BE <!-- open:ok syms:40/42#192:ok fmt:ok -->
nl_NL <!-- open:ok syms:40/42#192:ok fmt:ok -->
nn <!-- open:ok syms:40/42#175:ok fmt:ok -->
nn_NO <!-- open:ok syms:40/42#175:ok fmt:ok -->
om <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_ET <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_KE <!-- open:ok syms:40/42#208:ok fmt:ok -->
or <!-- open:ok syms:40/42#170:ok fmt:ok -->
or_IN <!-- open:ok syms:40/42#170:ok fmt:ok -->
pa <!-- open:ok syms:40/42#190:ok fmt:ok -->
pa_IN <!-- open:ok syms:40/42#190:ok fmt:ok -->
pl <!-- open:ok syms:40/42#195:ok fmt:ok -->
pl_PL <!-- open:ok syms:40/42#195:ok fmt:ok -->
ps <!-- open:ok syms:40/42#154:ok fmt:ok -->
ps_AF <!-- open:ok syms:40/42#154:ok fmt:ok -->
pt <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_BR <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_PT <!-- open:ok syms:40/42#214:ok fmt:ok -->
ro <!-- open:ok syms:40/42#182:ok fmt:ok -->
ro_RO <!-- open:ok syms:40/42#182:ok fmt:ok -->
ru <!-- open:ok syms:40/42#201:ok fmt:ok -->
ru_RU <!-- open:ok syms:40/42#201:ok fmt:ok -->
ru_UA <!-- open:ok syms:40/42#201:ok fmt:ok -->
sk <!-- open:ok syms:40/42#178:ok fmt:ok -->
sk_SK <!-- open:ok syms:40/42#178:ok fmt:ok -->
sl <!-- open:ok syms:40/42#189:ok fmt:ok -->
sl_SI <!-- open:ok syms:40/42#189:ok fmt:ok -->
so <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_DJ <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_ET <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_KE <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_SO <!-- open:ok syms:40/42#298:ok fmt:ok -->
sq <!-- open:ok syms:40/42#186:ok fmt:ok -->
sq_AL <!-- open:ok syms:40/42#186:ok fmt:ok -->
sr <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl_YU <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Latn <!-- open:ok syms:40/42#186:ok fmt:ok -->
sr_Latn_YU <!-- open:ok syms:40/42#186:ok fmt:ok -->
sr_YU <!-- open:ok syms:40/42#183:ok fmt:ok -->
sv <!-- open:ok syms:40/42#177:ok fmt:ok -->
sv_FI <!-- open:ok syms:40/42#177:ok fmt:ok -->
sv_SE <!-- open:ok syms:40/42#177:ok fmt:ok -->
sw <!-- open:ok syms:40/42#186:ok fmt:ok -->
sw_KE <!-- open:ok syms:40/42#186:ok fmt:ok -->
sw_TZ <!-- open:ok syms:40/42#186:ok fmt:ok -->
ta <!-- open:ok syms:40/42#183:ok fmt:ok -->
ta_IN <!-- open:ok syms:40/42#183:ok fmt:ok -->
te <!-- open:ok syms:40/42#231:ok fmt:ok -->
te_IN <!-- open:ok syms:40/42#231:ok fmt:ok -->
th <!-- open:ok syms:40/42#236:ok fmt:ok -->
th_TH <!-- open:ok syms:40/42#236:ok fmt:ok -->
ti <!-- open:ok syms:40/42#133:ok fmt:ok -->
ti_ER <!-- open:ok syms:40/42#125:ok fmt:ok -->
ti_ET <!-- open:ok syms:40/42#133:ok fmt:ok -->
tr <!-- open:ok syms:40/42#171:ok fmt:ok -->
tr_TR <!-- open:ok syms:40/42#171:ok fmt:ok -->
uk <!-- open:ok syms:40/42#185:ok fmt:ok -->
uk_UA <!-- open:ok syms:40/42#185:ok fmt:ok -->
vi <!-- open:ok syms:40/42#267:ok fmt:ok -->
vi_VN <!-- open:ok syms:40/42#267:ok fmt:ok -->
zh <!-- open:ok syms:40/42#85:ok fmt:ok -->
zh_Hans <!-- open:ok syms:40/42#85:ok fmt:ok -->
zh_Hans_CN <!-- open:ok syms:40/42#85:ok fmt:ok -->
zh_Hans_SG <!-- open:ok syms:40/42#85:ok fmt:ok -->
zh_Hant <!-- open:ok syms:40/42#85:ok fmt:ok -->
zh_Hant_HK <!-- open:ok syms:40/42#86:ok fmt:ok -->
zh_Hant_MO <!-- open:ok syms:40/42#86:ok fmt:ok -->
zh_Hant_TW <!-- open:ok syms:40/42#85:ok fmt:ok -->
</feature>
<feature type="collation" total="230" version="???">
af
af_ZA
am
am_ET
ar
ar_AE
ar_BH
ar_DZ
ar_EG
ar_IN
ar_IQ
ar_JO
ar_KW
ar_LB
ar_LY
ar_MA
ar_OM
ar_QA
ar_SA
ar_SD
ar_SY
ar_TN
ar_YE
be
be_BY
bg
bg_BG
bn
bn_IN
ca
ca_ES
cs
cs_CZ
cy
cy_GB
da
da_DK
de
de_AT
de_BE
de_CH
de_DE
de_LU
el
el_GR
en
en_AU
en_BE
en_BW
en_CA
en_GB
en_HK
en_IE
en_IN
en_MT
en_NZ
en_PH
en_PK
en_SG
en_US
en_US_POSIX
en_VI
en_ZA
en_ZW
eo
es
es_AR
es_BO
es_CL
es_CO
es_CR
es_DO
es_EC
es_ES
es_GT
es_HN
es_MX
es_NI
es_PA
es_PE
es_PR
es_PY
es_SV
es_US
es_UY
es_VE
et
et_EE
eu
eu_ES
fa
fa_AF
fa_IR
fi
fi_FI
fo
fo_FO
fr
fr_BE
fr_CA
fr_CH
fr_FR
fr_LU
ga
ga_IE
gl
gl_ES
gu
gu_IN
gv
gv_GB
he
he_IL
hi
hi_IN
hr
hr_HR
hu
hu_HU
hy
hy_AM
hy_AM_REVISED
id
id_ID
is
is_IS
it
it_CH
it_IT
ja
ja_JP
kk
kk_KZ
kl
kl_GL
kn
kn_IN
ko
ko_KR
kok
kok_IN
kw
kw_GB
lt
lt_LT
lv
lv_LV
mk
mk_MK
ml
ml_IN
mr
mr_IN
ms
ms_BN
ms_MY
mt
mt_MT
nb
nb_NO
nl
nl_BE
nl_NL
nn
nn_NO
om
om_ET
om_KE
or
or_IN
pa
pa_IN
pl
pl_PL
ps
ps_AF
pt
pt_BR
pt_PT
ro
ro_RO
ru
ru_RU
ru_UA
sk
sk_SK
sl
sl_SI
so
so_DJ
so_ET
so_KE
so_SO
sq
sq_AL
sr
sr_Cyrl
sr_Cyrl_YU
sr_Latn
sr_Latn_YU
sr_YU
sv
sv_FI
sv_SE
sw
sw_KE
sw_TZ
ta
ta_IN
te
te_IN
th
th_TH
ti
ti_ER
ti_ET
tr
tr_TR
uk
uk_UA
vi
vi_VN
zh
zh_Hans
zh_Hans_CN
zh_Hans_SG
zh_Hant
zh_Hant_HK
zh_Hant_MO
zh_Hant_TW
</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,507 +0,0 @@
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<icuInfo>
<icuProducts>
<icuProduct type="icu4c">
<releases>
<release version="3.4">
<capabilities>
<feature type="unicode" version="4.1"/>
<feature type="uca" version="4.1"/>
<feature type="formatting" total="242" version="???">
af <!-- open:ok syms:40/42#189:ok fmt:ok -->
af_ZA <!-- open:ok syms:40/42#189:ok fmt:ok -->
am <!-- open:ok syms:40/42#131:ok fmt:ok -->
am_ET <!-- open:ok syms:40/42#131:ok fmt:ok -->
ar <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_AE <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_BH <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_DZ <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_EG <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_IQ <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_JO <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_KW <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_LB <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_LY <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_MA <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_OM <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_QA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SD <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_SY <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_TN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_YE <!-- open:ok syms:40/42#220:ok fmt:ok -->
as <!-- open:ok syms:40/42#212:ok fmt:ok -->
as_IN <!-- open:ok syms:40/42#212:ok fmt:ok -->
az <!-- open:ok syms:40/42#195:ok fmt:ok -->
az_Cyrl <!-- open:ok syms:40/42#189:ok fmt:ok -->
az_Cyrl_AZ <!-- open:ok syms:40/42#189:ok fmt:ok -->
az_Latn <!-- open:ok syms:40/42#195:ok fmt:ok -->
az_Latn_AZ <!-- open:ok syms:40/42#195:ok fmt:ok -->
be <!-- open:ok syms:40/42#193:ok fmt:ok -->
be_BY <!-- open:ok syms:40/42#193:ok fmt:ok -->
bg <!-- open:ok syms:40/42#180:ok fmt:ok -->
bg_BG <!-- open:ok syms:40/42#180:ok fmt:ok -->
bn <!-- open:ok syms:40/42#238:ok fmt:ok -->
bn_IN <!-- open:ok syms:40/42#238:ok fmt:ok -->
ca <!-- open:ok syms:40/42#196:ok fmt:ok -->
ca_ES <!-- open:ok syms:40/42#196:ok fmt:ok -->
cs <!-- open:ok syms:40/42#167:ok fmt:ok -->
cs_CZ <!-- open:ok syms:40/42#167:ok fmt:ok -->
cy <!-- open:ok syms:40/42#222:ok fmt:ok -->
cy_GB <!-- open:ok syms:40/42#222:ok fmt:ok -->
da <!-- open:ok syms:40/42#183:ok fmt:ok -->
da_DK <!-- open:ok syms:40/42#183:ok fmt:ok -->
de <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_AT <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_BE <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_CH <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_DE <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_LU <!-- open:ok syms:40/42#188:ok fmt:ok -->
el <!-- open:ok syms:40/42#218:ok fmt:ok -->
el_GR <!-- open:ok syms:40/42#218:ok fmt:ok -->
en <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_AU <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BW <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_CA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_GB <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_HK <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IN <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_MT <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_NZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_PH <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_PK <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_SG <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US_POSIX <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_VI <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZW <!-- open:ok syms:40/42#185:ok fmt:ok -->
eo <!-- open:ok syms:40/42#177:ok fmt:ok -->
es <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_AR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_BO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CL <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_DO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_EC <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_ES <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_GT <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_HN <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_MX <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_NI <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PA <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PE <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_SV <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_US <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_UY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_VE <!-- open:ok syms:40/42#188:ok fmt:ok -->
et <!-- open:ok syms:40/42#201:ok fmt:ok -->
et_EE <!-- open:ok syms:40/42#201:ok fmt:ok -->
eu <!-- open:ok syms:40/42#197:ok fmt:ok -->
eu_ES <!-- open:ok syms:40/42#197:ok fmt:ok -->
fa <!-- open:ok syms:40/42#158:ok fmt:ok -->
fa_AF <!-- open:ok syms:40/42#156:ok fmt:ok -->
fa_IR <!-- open:ok syms:40/42#158:ok fmt:ok -->
fi <!-- open:ok syms:40/42#232:ok fmt:ok -->
fi_FI <!-- open:ok syms:40/42#232:ok fmt:ok -->
fo <!-- open:ok syms:40/42#200:ok fmt:ok -->
fo_FO <!-- open:ok syms:40/42#200:ok fmt:ok -->
fr <!-- open:ok syms:40/42#216:ok fmt:ok -->
fr_BE <!-- open:ok syms:40/42#216:ok fmt:ok -->
fr_CA <!-- open:ok syms:40/42#216:ok fmt:ok -->
fr_CH <!-- open:ok syms:40/42#216:ok fmt:ok -->
fr_FR <!-- open:ok syms:40/42#216:ok fmt:ok -->
fr_LU <!-- open:ok syms:40/42#216:ok fmt:ok -->
ga <!-- open:ok syms:40/42#247:ok fmt:ok -->
ga_IE <!-- open:ok syms:40/42#247:ok fmt:ok -->
gl <!-- open:ok syms:40/42#179:ok fmt:ok -->
gl_ES <!-- open:ok syms:40/42#179:ok fmt:ok -->
gu <!-- open:ok syms:40/42#206:ok fmt:ok -->
gu_IN <!-- open:ok syms:40/42#206:ok fmt:ok -->
gv <!-- open:ok syms:40/42#295:ok fmt:ok -->
gv_GB <!-- open:ok syms:40/42#295:ok fmt:ok -->
he <!-- open:ok syms:40/42#168:ok fmt:ok -->
he_IL <!-- open:ok syms:40/42#168:ok fmt:ok -->
hi <!-- open:ok syms:40/42#207:ok fmt:ok -->
hi_IN <!-- open:ok syms:40/42#207:ok fmt:ok -->
hr <!-- open:ok syms:40/42#199:ok fmt:ok -->
hr_HR <!-- open:ok syms:40/42#199:ok fmt:ok -->
hu <!-- open:ok syms:40/42#203:ok fmt:ok -->
hu_HU <!-- open:ok syms:40/42#203:ok fmt:ok -->
hy <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM_REVISED <!-- open:ok syms:40/42#204:ok fmt:ok -->
id <!-- open:ok syms:40/42#173:ok fmt:ok -->
id_ID <!-- open:ok syms:40/42#173:ok fmt:ok -->
is <!-- open:ok syms:40/42#206:ok fmt:ok -->
is_IS <!-- open:ok syms:40/42#206:ok fmt:ok -->
it <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_CH <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_IT <!-- open:ok syms:40/42#193:ok fmt:ok -->
ja <!-- open:ok syms:40/42#99:ok fmt:ok -->
ja_JP <!-- open:ok syms:40/42#99:ok fmt:ok -->
kk <!-- open:ok syms:40/42#193:ok fmt:ok -->
kk_KZ <!-- open:ok syms:40/42#193:ok fmt:ok -->
kl <!-- open:ok syms:40/42#237:ok fmt:ok -->
kl_GL <!-- open:ok syms:40/42#237:ok fmt:ok -->
kn <!-- open:ok syms:40/42#220:ok fmt:ok -->
kn_IN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ko <!-- open:ok syms:40/42#87:ok fmt:ok -->
ko_KR <!-- open:ok syms:40/42#87:ok fmt:ok -->
kok <!-- open:ok syms:40/42#243:ok fmt:ok -->
kok_IN <!-- open:ok syms:40/42#243:ok fmt:ok -->
kw <!-- open:ok syms:40/42#224:ok fmt:ok -->
kw_GB <!-- open:ok syms:40/42#224:ok fmt:ok -->
lt <!-- open:ok syms:40/42#231:ok fmt:ok -->
lt_LT <!-- open:ok syms:40/42#231:ok fmt:ok -->
lv <!-- open:ok syms:40/42#204:ok fmt:ok -->
lv_LV <!-- open:ok syms:40/42#204:ok fmt:ok -->
mk <!-- open:ok syms:40/42#209:ok fmt:ok -->
mk_MK <!-- open:ok syms:40/42#209:ok fmt:ok -->
ml <!-- open:ok syms:40/42#197:ok fmt:ok -->
ml_IN <!-- open:ok syms:40/42#197:ok fmt:ok -->
mr <!-- open:ok syms:40/42#227:ok fmt:ok -->
mr_IN <!-- open:ok syms:40/42#227:ok fmt:ok -->
ms <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_BN <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_MY <!-- open:ok syms:40/42#169:ok fmt:ok -->
mt <!-- open:ok syms:40/42#190:ok fmt:ok -->
mt_MT <!-- open:ok syms:40/42#190:ok fmt:ok -->
nb <!-- open:ok syms:40/42#194:ok fmt:ok -->
nb_NO <!-- open:ok syms:40/42#194:ok fmt:ok -->
nl <!-- open:ok syms:40/42#192:ok fmt:ok -->
nl_BE <!-- open:ok syms:40/42#192:ok fmt:ok -->
nl_NL <!-- open:ok syms:40/42#192:ok fmt:ok -->
nn <!-- open:ok syms:40/42#175:ok fmt:ok -->
nn_NO <!-- open:ok syms:40/42#175:ok fmt:ok -->
om <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_ET <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_KE <!-- open:ok syms:40/42#208:ok fmt:ok -->
or <!-- open:ok syms:40/42#170:ok fmt:ok -->
or_IN <!-- open:ok syms:40/42#170:ok fmt:ok -->
pa <!-- open:ok syms:40/42#190:ok fmt:ok -->
pa_IN <!-- open:ok syms:40/42#190:ok fmt:ok -->
pl <!-- open:ok syms:40/42#195:ok fmt:ok -->
pl_PL <!-- open:ok syms:40/42#195:ok fmt:ok -->
ps <!-- open:ok syms:40/42#154:ok fmt:ok -->
ps_AF <!-- open:ok syms:40/42#154:ok fmt:ok -->
pt <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_BR <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_PT <!-- open:ok syms:40/42#214:ok fmt:ok -->
ro <!-- open:ok syms:40/42#182:ok fmt:ok -->
ro_RO <!-- open:ok syms:40/42#182:ok fmt:ok -->
ru <!-- open:ok syms:40/42#201:ok fmt:ok -->
ru_RU <!-- open:ok syms:40/42#201:ok fmt:ok -->
ru_UA <!-- open:ok syms:40/42#201:ok fmt:ok -->
sk <!-- open:ok syms:40/42#178:ok fmt:ok -->
sk_SK <!-- open:ok syms:40/42#178:ok fmt:ok -->
sl <!-- open:ok syms:40/42#189:ok fmt:ok -->
sl_SI <!-- open:ok syms:40/42#189:ok fmt:ok -->
so <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_DJ <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_ET <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_KE <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_SO <!-- open:ok syms:40/42#298:ok fmt:ok -->
sq <!-- open:ok syms:40/42#186:ok fmt:ok -->
sq_AL <!-- open:ok syms:40/42#186:ok fmt:ok -->
sr <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl_CS <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Latn <!-- open:ok syms:40/42#186:ok fmt:ok -->
sr_Latn_CS <!-- open:ok syms:40/42#186:ok fmt:ok -->
sv <!-- open:ok syms:40/42#177:ok fmt:ok -->
sv_FI <!-- open:ok syms:40/42#177:ok fmt:ok -->
sv_SE <!-- open:ok syms:40/42#177:ok fmt:ok -->
sw <!-- open:ok syms:40/42#186:ok fmt:ok -->
sw_KE <!-- open:ok syms:40/42#186:ok fmt:ok -->
sw_TZ <!-- open:ok syms:40/42#186:ok fmt:ok -->
ta <!-- open:ok syms:40/42#183:ok fmt:ok -->
ta_IN <!-- open:ok syms:40/42#183:ok fmt:ok -->
te <!-- open:ok syms:40/42#231:ok fmt:ok -->
te_IN <!-- open:ok syms:40/42#231:ok fmt:ok -->
th <!-- open:ok syms:40/42#236:ok fmt:ok -->
th_TH <!-- open:ok syms:40/42#236:ok fmt:ok -->
ti <!-- open:ok syms:40/42#133:ok fmt:ok -->
ti_ER <!-- open:ok syms:40/42#125:ok fmt:ok -->
ti_ET <!-- open:ok syms:40/42#133:ok fmt:ok -->
tr <!-- open:ok syms:40/42#171:ok fmt:ok -->
tr_TR <!-- open:ok syms:40/42#171:ok fmt:ok -->
uk <!-- open:ok syms:40/42#185:ok fmt:ok -->
uk_UA <!-- open:ok syms:40/42#185:ok fmt:ok -->
ur <!-- open:ok syms:40/42#49:ok fmt:ok -->
ur_PK <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz <!-- open:ok syms:40/42#211:ok fmt:ok -->
uz_Cyrl <!-- open:ok syms:40/42#211:ok fmt:ok -->
uz_Cyrl_UZ <!-- open:ok syms:40/42#211:ok fmt:ok -->
uz_Latn <!-- open:ok syms:40/42#231:ok fmt:ok -->
uz_Latn_UZ <!-- open:ok syms:40/42#231:ok fmt:ok -->
vi <!-- open:ok syms:40/42#267:ok fmt:ok -->
vi_VN <!-- open:ok syms:40/42#267:ok fmt:ok -->
zh <!-- open:ok syms:40/42#92:ok fmt:ok -->
zh_Hans <!-- open:ok syms:40/42#92:ok fmt:ok -->
zh_Hans_CN <!-- open:ok syms:40/42#92:ok fmt:ok -->
zh_Hans_SG <!-- open:ok syms:40/42#92:ok fmt:ok -->
zh_Hant <!-- open:ok syms:40/42#92:ok fmt:ok -->
zh_Hant_HK <!-- open:ok syms:40/42#93:ok fmt:ok -->
zh_Hant_MO <!-- open:ok syms:40/42#93:ok fmt:ok -->
zh_Hant_TW <!-- open:ok syms:40/42#92:ok fmt:ok -->
</feature>
<feature type="collation" total="242" version="???">
af
af_ZA
am
am_ET
ar
ar_AE
ar_BH
ar_DZ
ar_EG
ar_IQ
ar_JO
ar_KW
ar_LB
ar_LY
ar_MA
ar_OM
ar_QA
ar_SA
ar_SD
ar_SY
ar_TN
ar_YE
as
as_IN
az
az_Cyrl
az_Cyrl_AZ
az_Latn
az_Latn_AZ
be
be_BY
bg
bg_BG
bn
bn_IN
ca
ca_ES
cs
cs_CZ
cy
cy_GB
da
da_DK
de
de_AT
de_BE
de_CH
de_DE
de_LU
el
el_GR
en
en_AU
en_BE
en_BW
en_CA
en_GB
en_HK
en_IE
en_IN
en_MT
en_NZ
en_PH
en_PK
en_SG
en_US
en_US_POSIX
en_VI
en_ZA
en_ZW
eo
es
es_AR
es_BO
es_CL
es_CO
es_CR
es_DO
es_EC
es_ES
es_GT
es_HN
es_MX
es_NI
es_PA
es_PE
es_PR
es_PY
es_SV
es_US
es_UY
es_VE
et
et_EE
eu
eu_ES
fa
fa_AF
fa_IR
fi
fi_FI
fo
fo_FO
fr
fr_BE
fr_CA
fr_CH
fr_FR
fr_LU
ga
ga_IE
gl
gl_ES
gu
gu_IN
gv
gv_GB
he
he_IL
hi
hi_IN
hr
hr_HR
hu
hu_HU
hy
hy_AM
hy_AM_REVISED
id
id_ID
is
is_IS
it
it_CH
it_IT
ja
ja_JP
kk
kk_KZ
kl
kl_GL
kn
kn_IN
ko
ko_KR
kok
kok_IN
kw
kw_GB
lt
lt_LT
lv
lv_LV
mk
mk_MK
ml
ml_IN
mr
mr_IN
ms
ms_BN
ms_MY
mt
mt_MT
nb
nb_NO
nl
nl_BE
nl_NL
nn
nn_NO
om
om_ET
om_KE
or
or_IN
pa
pa_IN
pl
pl_PL
ps
ps_AF
pt
pt_BR
pt_PT
ro
ro_RO
ru
ru_RU
ru_UA
sk
sk_SK
sl
sl_SI
so
so_DJ
so_ET
so_KE
so_SO
sq
sq_AL
sr
sr_Cyrl
sr_Cyrl_CS
sr_Latn
sr_Latn_CS
sv
sv_FI
sv_SE
sw
sw_KE
sw_TZ
ta
ta_IN
te
te_IN
th
th_TH
ti
ti_ER
ti_ET
tr
tr_TR
uk
uk_UA
ur
ur_PK
uz
uz_Cyrl
uz_Cyrl_UZ
uz_Latn
uz_Latn_UZ
vi
vi_VN
zh
zh_Hans
zh_Hans_CN
zh_Hans_SG
zh_Hant
zh_Hant_HK
zh_Hant_MO
zh_Hant_TW
</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,507 +0,0 @@
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<icuInfo>
<icuProducts>
<icuProduct type="icu4c">
<releases>
<release version="3.4.1">
<capabilities>
<feature type="unicode" version="4.1"/>
<feature type="uca" version="4.1"/>
<feature type="formatting" total="242" version="???">
af <!-- open:ok syms:40/42#189:ok fmt:ok -->
af_ZA <!-- open:ok syms:40/42#189:ok fmt:ok -->
am <!-- open:ok syms:40/42#131:ok fmt:ok -->
am_ET <!-- open:ok syms:40/42#131:ok fmt:ok -->
ar <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_AE <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_BH <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_DZ <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_EG <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_IQ <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_JO <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_KW <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_LB <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_LY <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_MA <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_OM <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_QA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SD <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_SY <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_TN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_YE <!-- open:ok syms:40/42#220:ok fmt:ok -->
as <!-- open:ok syms:40/42#212:ok fmt:ok -->
as_IN <!-- open:ok syms:40/42#212:ok fmt:ok -->
az <!-- open:ok syms:40/42#195:ok fmt:ok -->
az_Cyrl <!-- open:ok syms:40/42#189:ok fmt:ok -->
az_Cyrl_AZ <!-- open:ok syms:40/42#189:ok fmt:ok -->
az_Latn <!-- open:ok syms:40/42#195:ok fmt:ok -->
az_Latn_AZ <!-- open:ok syms:40/42#195:ok fmt:ok -->
be <!-- open:ok syms:40/42#193:ok fmt:ok -->
be_BY <!-- open:ok syms:40/42#193:ok fmt:ok -->
bg <!-- open:ok syms:40/42#180:ok fmt:ok -->
bg_BG <!-- open:ok syms:40/42#180:ok fmt:ok -->
bn <!-- open:ok syms:40/42#238:ok fmt:ok -->
bn_IN <!-- open:ok syms:40/42#238:ok fmt:ok -->
ca <!-- open:ok syms:40/42#196:ok fmt:ok -->
ca_ES <!-- open:ok syms:40/42#196:ok fmt:ok -->
cs <!-- open:ok syms:40/42#167:ok fmt:ok -->
cs_CZ <!-- open:ok syms:40/42#167:ok fmt:ok -->
cy <!-- open:ok syms:40/42#222:ok fmt:ok -->
cy_GB <!-- open:ok syms:40/42#222:ok fmt:ok -->
da <!-- open:ok syms:40/42#183:ok fmt:ok -->
da_DK <!-- open:ok syms:40/42#183:ok fmt:ok -->
de <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_AT <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_BE <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_CH <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_DE <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_LU <!-- open:ok syms:40/42#188:ok fmt:ok -->
el <!-- open:ok syms:40/42#218:ok fmt:ok -->
el_GR <!-- open:ok syms:40/42#218:ok fmt:ok -->
en <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_AU <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BW <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_CA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_GB <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_HK <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IN <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_MT <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_NZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_PH <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_PK <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_SG <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US_POSIX <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_VI <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZW <!-- open:ok syms:40/42#185:ok fmt:ok -->
eo <!-- open:ok syms:40/42#177:ok fmt:ok -->
es <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_AR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_BO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CL <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_DO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_EC <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_ES <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_GT <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_HN <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_MX <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_NI <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PA <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PE <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_SV <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_US <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_UY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_VE <!-- open:ok syms:40/42#188:ok fmt:ok -->
et <!-- open:ok syms:40/42#201:ok fmt:ok -->
et_EE <!-- open:ok syms:40/42#201:ok fmt:ok -->
eu <!-- open:ok syms:40/42#197:ok fmt:ok -->
eu_ES <!-- open:ok syms:40/42#197:ok fmt:ok -->
fa <!-- open:ok syms:40/42#158:ok fmt:ok -->
fa_AF <!-- open:ok syms:40/42#156:ok fmt:ok -->
fa_IR <!-- open:ok syms:40/42#158:ok fmt:ok -->
fi <!-- open:ok syms:40/42#232:ok fmt:ok -->
fi_FI <!-- open:ok syms:40/42#232:ok fmt:ok -->
fo <!-- open:ok syms:40/42#200:ok fmt:ok -->
fo_FO <!-- open:ok syms:40/42#200:ok fmt:ok -->
fr <!-- open:ok syms:40/42#216:ok fmt:ok -->
fr_BE <!-- open:ok syms:40/42#216:ok fmt:ok -->
fr_CA <!-- open:ok syms:40/42#216:ok fmt:ok -->
fr_CH <!-- open:ok syms:40/42#216:ok fmt:ok -->
fr_FR <!-- open:ok syms:40/42#216:ok fmt:ok -->
fr_LU <!-- open:ok syms:40/42#216:ok fmt:ok -->
ga <!-- open:ok syms:40/42#247:ok fmt:ok -->
ga_IE <!-- open:ok syms:40/42#247:ok fmt:ok -->
gl <!-- open:ok syms:40/42#179:ok fmt:ok -->
gl_ES <!-- open:ok syms:40/42#179:ok fmt:ok -->
gu <!-- open:ok syms:40/42#206:ok fmt:ok -->
gu_IN <!-- open:ok syms:40/42#206:ok fmt:ok -->
gv <!-- open:ok syms:40/42#295:ok fmt:ok -->
gv_GB <!-- open:ok syms:40/42#295:ok fmt:ok -->
he <!-- open:ok syms:40/42#168:ok fmt:ok -->
he_IL <!-- open:ok syms:40/42#168:ok fmt:ok -->
hi <!-- open:ok syms:40/42#207:ok fmt:ok -->
hi_IN <!-- open:ok syms:40/42#207:ok fmt:ok -->
hr <!-- open:ok syms:40/42#199:ok fmt:ok -->
hr_HR <!-- open:ok syms:40/42#199:ok fmt:ok -->
hu <!-- open:ok syms:40/42#203:ok fmt:ok -->
hu_HU <!-- open:ok syms:40/42#203:ok fmt:ok -->
hy <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM_REVISED <!-- open:ok syms:40/42#204:ok fmt:ok -->
id <!-- open:ok syms:40/42#173:ok fmt:ok -->
id_ID <!-- open:ok syms:40/42#173:ok fmt:ok -->
is <!-- open:ok syms:40/42#206:ok fmt:ok -->
is_IS <!-- open:ok syms:40/42#206:ok fmt:ok -->
it <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_CH <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_IT <!-- open:ok syms:40/42#193:ok fmt:ok -->
ja <!-- open:ok syms:40/42#99:ok fmt:ok -->
ja_JP <!-- open:ok syms:40/42#99:ok fmt:ok -->
kk <!-- open:ok syms:40/42#193:ok fmt:ok -->
kk_KZ <!-- open:ok syms:40/42#193:ok fmt:ok -->
kl <!-- open:ok syms:40/42#237:ok fmt:ok -->
kl_GL <!-- open:ok syms:40/42#237:ok fmt:ok -->
kn <!-- open:ok syms:40/42#220:ok fmt:ok -->
kn_IN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ko <!-- open:ok syms:40/42#87:ok fmt:ok -->
ko_KR <!-- open:ok syms:40/42#87:ok fmt:ok -->
kok <!-- open:ok syms:40/42#243:ok fmt:ok -->
kok_IN <!-- open:ok syms:40/42#243:ok fmt:ok -->
kw <!-- open:ok syms:40/42#224:ok fmt:ok -->
kw_GB <!-- open:ok syms:40/42#224:ok fmt:ok -->
lt <!-- open:ok syms:40/42#231:ok fmt:ok -->
lt_LT <!-- open:ok syms:40/42#231:ok fmt:ok -->
lv <!-- open:ok syms:40/42#204:ok fmt:ok -->
lv_LV <!-- open:ok syms:40/42#204:ok fmt:ok -->
mk <!-- open:ok syms:40/42#209:ok fmt:ok -->
mk_MK <!-- open:ok syms:40/42#209:ok fmt:ok -->
ml <!-- open:ok syms:40/42#197:ok fmt:ok -->
ml_IN <!-- open:ok syms:40/42#197:ok fmt:ok -->
mr <!-- open:ok syms:40/42#227:ok fmt:ok -->
mr_IN <!-- open:ok syms:40/42#227:ok fmt:ok -->
ms <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_BN <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_MY <!-- open:ok syms:40/42#169:ok fmt:ok -->
mt <!-- open:ok syms:40/42#190:ok fmt:ok -->
mt_MT <!-- open:ok syms:40/42#190:ok fmt:ok -->
nb <!-- open:ok syms:40/42#194:ok fmt:ok -->
nb_NO <!-- open:ok syms:40/42#194:ok fmt:ok -->
nl <!-- open:ok syms:40/42#192:ok fmt:ok -->
nl_BE <!-- open:ok syms:40/42#192:ok fmt:ok -->
nl_NL <!-- open:ok syms:40/42#192:ok fmt:ok -->
nn <!-- open:ok syms:40/42#175:ok fmt:ok -->
nn_NO <!-- open:ok syms:40/42#175:ok fmt:ok -->
om <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_ET <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_KE <!-- open:ok syms:40/42#208:ok fmt:ok -->
or <!-- open:ok syms:40/42#170:ok fmt:ok -->
or_IN <!-- open:ok syms:40/42#170:ok fmt:ok -->
pa <!-- open:ok syms:40/42#190:ok fmt:ok -->
pa_IN <!-- open:ok syms:40/42#190:ok fmt:ok -->
pl <!-- open:ok syms:40/42#195:ok fmt:ok -->
pl_PL <!-- open:ok syms:40/42#195:ok fmt:ok -->
ps <!-- open:ok syms:40/42#154:ok fmt:ok -->
ps_AF <!-- open:ok syms:40/42#154:ok fmt:ok -->
pt <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_BR <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_PT <!-- open:ok syms:40/42#214:ok fmt:ok -->
ro <!-- open:ok syms:40/42#182:ok fmt:ok -->
ro_RO <!-- open:ok syms:40/42#182:ok fmt:ok -->
ru <!-- open:ok syms:40/42#201:ok fmt:ok -->
ru_RU <!-- open:ok syms:40/42#201:ok fmt:ok -->
ru_UA <!-- open:ok syms:40/42#201:ok fmt:ok -->
sk <!-- open:ok syms:40/42#178:ok fmt:ok -->
sk_SK <!-- open:ok syms:40/42#178:ok fmt:ok -->
sl <!-- open:ok syms:40/42#189:ok fmt:ok -->
sl_SI <!-- open:ok syms:40/42#189:ok fmt:ok -->
so <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_DJ <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_ET <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_KE <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_SO <!-- open:ok syms:40/42#298:ok fmt:ok -->
sq <!-- open:ok syms:40/42#186:ok fmt:ok -->
sq_AL <!-- open:ok syms:40/42#186:ok fmt:ok -->
sr <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl_CS <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Latn <!-- open:ok syms:40/42#186:ok fmt:ok -->
sr_Latn_CS <!-- open:ok syms:40/42#186:ok fmt:ok -->
sv <!-- open:ok syms:40/42#177:ok fmt:ok -->
sv_FI <!-- open:ok syms:40/42#177:ok fmt:ok -->
sv_SE <!-- open:ok syms:40/42#177:ok fmt:ok -->
sw <!-- open:ok syms:40/42#186:ok fmt:ok -->
sw_KE <!-- open:ok syms:40/42#186:ok fmt:ok -->
sw_TZ <!-- open:ok syms:40/42#186:ok fmt:ok -->
ta <!-- open:ok syms:40/42#183:ok fmt:ok -->
ta_IN <!-- open:ok syms:40/42#183:ok fmt:ok -->
te <!-- open:ok syms:40/42#231:ok fmt:ok -->
te_IN <!-- open:ok syms:40/42#231:ok fmt:ok -->
th <!-- open:ok syms:40/42#236:ok fmt:ok -->
th_TH <!-- open:ok syms:40/42#236:ok fmt:ok -->
ti <!-- open:ok syms:40/42#133:ok fmt:ok -->
ti_ER <!-- open:ok syms:40/42#125:ok fmt:ok -->
ti_ET <!-- open:ok syms:40/42#133:ok fmt:ok -->
tr <!-- open:ok syms:40/42#171:ok fmt:ok -->
tr_TR <!-- open:ok syms:40/42#171:ok fmt:ok -->
uk <!-- open:ok syms:40/42#185:ok fmt:ok -->
uk_UA <!-- open:ok syms:40/42#185:ok fmt:ok -->
ur <!-- open:ok syms:40/42#49:ok fmt:ok -->
ur_PK <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz <!-- open:ok syms:40/42#211:ok fmt:ok -->
uz_Cyrl <!-- open:ok syms:40/42#211:ok fmt:ok -->
uz_Cyrl_UZ <!-- open:ok syms:40/42#211:ok fmt:ok -->
uz_Latn <!-- open:ok syms:40/42#231:ok fmt:ok -->
uz_Latn_UZ <!-- open:ok syms:40/42#231:ok fmt:ok -->
vi <!-- open:ok syms:40/42#267:ok fmt:ok -->
vi_VN <!-- open:ok syms:40/42#267:ok fmt:ok -->
zh <!-- open:ok syms:40/42#92:ok fmt:ok -->
zh_Hans <!-- open:ok syms:40/42#92:ok fmt:ok -->
zh_Hans_CN <!-- open:ok syms:40/42#92:ok fmt:ok -->
zh_Hans_SG <!-- open:ok syms:40/42#92:ok fmt:ok -->
zh_Hant <!-- open:ok syms:40/42#92:ok fmt:ok -->
zh_Hant_HK <!-- open:ok syms:40/42#93:ok fmt:ok -->
zh_Hant_MO <!-- open:ok syms:40/42#93:ok fmt:ok -->
zh_Hant_TW <!-- open:ok syms:40/42#92:ok fmt:ok -->
</feature>
<feature type="collation" total="242" version="???">
af
af_ZA
am
am_ET
ar
ar_AE
ar_BH
ar_DZ
ar_EG
ar_IQ
ar_JO
ar_KW
ar_LB
ar_LY
ar_MA
ar_OM
ar_QA
ar_SA
ar_SD
ar_SY
ar_TN
ar_YE
as
as_IN
az
az_Cyrl
az_Cyrl_AZ
az_Latn
az_Latn_AZ
be
be_BY
bg
bg_BG
bn
bn_IN
ca
ca_ES
cs
cs_CZ
cy
cy_GB
da
da_DK
de
de_AT
de_BE
de_CH
de_DE
de_LU
el
el_GR
en
en_AU
en_BE
en_BW
en_CA
en_GB
en_HK
en_IE
en_IN
en_MT
en_NZ
en_PH
en_PK
en_SG
en_US
en_US_POSIX
en_VI
en_ZA
en_ZW
eo
es
es_AR
es_BO
es_CL
es_CO
es_CR
es_DO
es_EC
es_ES
es_GT
es_HN
es_MX
es_NI
es_PA
es_PE
es_PR
es_PY
es_SV
es_US
es_UY
es_VE
et
et_EE
eu
eu_ES
fa
fa_AF
fa_IR
fi
fi_FI
fo
fo_FO
fr
fr_BE
fr_CA
fr_CH
fr_FR
fr_LU
ga
ga_IE
gl
gl_ES
gu
gu_IN
gv
gv_GB
he
he_IL
hi
hi_IN
hr
hr_HR
hu
hu_HU
hy
hy_AM
hy_AM_REVISED
id
id_ID
is
is_IS
it
it_CH
it_IT
ja
ja_JP
kk
kk_KZ
kl
kl_GL
kn
kn_IN
ko
ko_KR
kok
kok_IN
kw
kw_GB
lt
lt_LT
lv
lv_LV
mk
mk_MK
ml
ml_IN
mr
mr_IN
ms
ms_BN
ms_MY
mt
mt_MT
nb
nb_NO
nl
nl_BE
nl_NL
nn
nn_NO
om
om_ET
om_KE
or
or_IN
pa
pa_IN
pl
pl_PL
ps
ps_AF
pt
pt_BR
pt_PT
ro
ro_RO
ru
ru_RU
ru_UA
sk
sk_SK
sl
sl_SI
so
so_DJ
so_ET
so_KE
so_SO
sq
sq_AL
sr
sr_Cyrl
sr_Cyrl_CS
sr_Latn
sr_Latn_CS
sv
sv_FI
sv_SE
sw
sw_KE
sw_TZ
ta
ta_IN
te
te_IN
th
th_TH
ti
ti_ER
ti_ET
tr
tr_TR
uk
uk_UA
ur
ur_PK
uz
uz_Cyrl
uz_Cyrl_UZ
uz_Latn
uz_Latn_UZ
vi
vi_VN
zh
zh_Hans
zh_Hans_CN
zh_Hans_SG
zh_Hant
zh_Hant_HK
zh_Hant_MO
zh_Hant_TW
</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,513 +0,0 @@
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<icuInfo>
<icuProducts>
<icuProduct type="icu4c">
<releases>
<release version="3.6">
<capabilities>
<feature type="unicode" version="5.0"/>
<feature type="uca" version="5.0"/>
<feature type="formatting" total="245" version="???">
af <!-- open:ok syms:40/42#189:ok fmt:ok -->
af_ZA <!-- open:ok syms:40/42#189:ok fmt:ok -->
am <!-- open:ok syms:40/42#131:ok fmt:ok -->
am_ET <!-- open:ok syms:40/42#131:ok fmt:ok -->
ar <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_AE <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_BH <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_DZ <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_EG <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_IQ <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_JO <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_KW <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_LB <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_LY <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_MA <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_OM <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_QA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SD <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_SY <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_TN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_YE <!-- open:ok syms:40/42#220:ok fmt:ok -->
as <!-- open:ok syms:40/42#214:ok fmt:ok -->
as_IN <!-- open:ok syms:40/42#214:ok fmt:ok -->
az <!-- open:ok syms:40/42#195:ok fmt:ok -->
az_Cyrl <!-- open:ok syms:40/42#189:ok fmt:ok -->
az_Cyrl_AZ <!-- open:ok syms:40/42#189:ok fmt:ok -->
az_Latn <!-- open:ok syms:40/42#195:ok fmt:ok -->
az_Latn_AZ <!-- open:ok syms:40/42#195:ok fmt:ok -->
be <!-- open:ok syms:40/42#193:ok fmt:ok -->
be_BY <!-- open:ok syms:40/42#193:ok fmt:ok -->
bg <!-- open:ok syms:40/42#196:ok fmt:ok -->
bg_BG <!-- open:ok syms:40/42#196:ok fmt:ok -->
bn <!-- open:ok syms:40/42#242:ok fmt:ok -->
bn_IN <!-- open:ok syms:40/42#242:ok fmt:ok -->
ca <!-- open:ok syms:40/42#196:ok fmt:ok -->
ca_ES <!-- open:ok syms:40/42#196:ok fmt:ok -->
cs <!-- open:ok syms:40/42#195:ok fmt:ok -->
cs_CZ <!-- open:ok syms:40/42#195:ok fmt:ok -->
cy <!-- open:ok syms:40/42#222:ok fmt:ok -->
cy_GB <!-- open:ok syms:40/42#222:ok fmt:ok -->
da <!-- open:ok syms:40/42#183:ok fmt:ok -->
da_DK <!-- open:ok syms:40/42#183:ok fmt:ok -->
de <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_AT <!-- open:ok syms:40/42#215:ok fmt:ok -->
de_BE <!-- open:ok syms:40/42#222:ok fmt:ok -->
de_CH <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_DE <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_LU <!-- open:ok syms:40/42#188:ok fmt:ok -->
el <!-- open:ok syms:40/42#218:ok fmt:ok -->
el_GR <!-- open:ok syms:40/42#218:ok fmt:ok -->
en <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_AU <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BW <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_CA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_GB <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_HK <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IN <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_MT <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_NZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_PH <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_PK <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_SG <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US_POSIX <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_VI <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZW <!-- open:ok syms:40/42#185:ok fmt:ok -->
eo <!-- open:ok syms:40/42#177:ok fmt:ok -->
es <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_AR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_BO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CL <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_DO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_EC <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_ES <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_GT <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_HN <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_MX <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_NI <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PA <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PE <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_SV <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_US <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_UY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_VE <!-- open:ok syms:40/42#188:ok fmt:ok -->
et <!-- open:ok syms:40/42#201:ok fmt:ok -->
et_EE <!-- open:ok syms:40/42#201:ok fmt:ok -->
eu <!-- open:ok syms:40/42#197:ok fmt:ok -->
eu_ES <!-- open:ok syms:40/42#197:ok fmt:ok -->
fa <!-- open:ok syms:40/42#214:ok fmt:ok -->
fa_AF <!-- open:ok syms:40/42#200:ok fmt:ok -->
fa_IR <!-- open:ok syms:40/42#214:ok fmt:ok -->
fi <!-- open:ok syms:40/42#232:ok fmt:ok -->
fi_FI <!-- open:ok syms:40/42#232:ok fmt:ok -->
fo <!-- open:ok syms:40/42#200:ok fmt:ok -->
fo_FO <!-- open:ok syms:40/42#200:ok fmt:ok -->
fr <!-- open:ok syms:40/42#216:ok fmt:ok -->
fr_BE <!-- open:ok syms:40/42#216:ok fmt:ok -->
fr_CA <!-- open:ok syms:40/42#216:ok fmt:ok -->
fr_CH <!-- open:ok syms:40/42#216:ok fmt:ok -->
fr_FR <!-- open:ok syms:40/42#216:ok fmt:ok -->
fr_LU <!-- open:ok syms:40/42#216:ok fmt:ok -->
ga <!-- open:ok syms:40/42#247:ok fmt:ok -->
ga_IE <!-- open:ok syms:40/42#247:ok fmt:ok -->
gl <!-- open:ok syms:40/42#179:ok fmt:ok -->
gl_ES <!-- open:ok syms:40/42#179:ok fmt:ok -->
gu <!-- open:ok syms:40/42#206:ok fmt:ok -->
gu_IN <!-- open:ok syms:40/42#206:ok fmt:ok -->
gv <!-- open:ok syms:40/42#295:ok fmt:ok -->
gv_GB <!-- open:ok syms:40/42#295:ok fmt:ok -->
haw <!-- open:ok syms:40/42#199:ok fmt:ok -->
haw_US <!-- open:ok syms:40/42#199:ok fmt:ok -->
he <!-- open:ok syms:40/42#168:ok fmt:ok -->
he_IL <!-- open:ok syms:40/42#168:ok fmt:ok -->
hi <!-- open:ok syms:40/42#207:ok fmt:ok -->
hi_IN <!-- open:ok syms:40/42#207:ok fmt:ok -->
hr <!-- open:ok syms:40/42#203:ok fmt:ok -->
hr_HR <!-- open:ok syms:40/42#203:ok fmt:ok -->
hu <!-- open:ok syms:40/42#206:ok fmt:ok -->
hu_HU <!-- open:ok syms:40/42#206:ok fmt:ok -->
hy <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM_REVISED <!-- open:ok syms:40/42#238:ok fmt:ok -->
id <!-- open:ok syms:40/42#173:ok fmt:ok -->
id_ID <!-- open:ok syms:40/42#173:ok fmt:ok -->
is <!-- open:ok syms:40/42#206:ok fmt:ok -->
is_IS <!-- open:ok syms:40/42#206:ok fmt:ok -->
it <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_CH <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_IT <!-- open:ok syms:40/42#193:ok fmt:ok -->
ja <!-- open:ok syms:40/42#111:ok fmt:ok -->
ja_JP <!-- open:ok syms:40/42#111:ok fmt:ok -->
kk <!-- open:ok syms:40/42#193:ok fmt:ok -->
kk_KZ <!-- open:ok syms:40/42#193:ok fmt:ok -->
kl <!-- open:ok syms:40/42#237:ok fmt:ok -->
kl_GL <!-- open:ok syms:40/42#237:ok fmt:ok -->
kn <!-- open:ok syms:40/42#220:ok fmt:ok -->
kn_IN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ko <!-- open:ok syms:40/42#87:ok fmt:ok -->
ko_KR <!-- open:ok syms:40/42#87:ok fmt:ok -->
kok <!-- open:ok syms:40/42#243:ok fmt:ok -->
kok_IN <!-- open:ok syms:40/42#243:ok fmt:ok -->
kw <!-- open:ok syms:40/42#224:ok fmt:ok -->
kw_GB <!-- open:ok syms:40/42#224:ok fmt:ok -->
lt <!-- open:ok syms:40/42#231:ok fmt:ok -->
lt_LT <!-- open:ok syms:40/42#231:ok fmt:ok -->
lv <!-- open:ok syms:40/42#204:ok fmt:ok -->
lv_LV <!-- open:ok syms:40/42#204:ok fmt:ok -->
mk <!-- open:ok syms:40/42#209:ok fmt:ok -->
mk_MK <!-- open:ok syms:40/42#209:ok fmt:ok -->
ml <!-- open:ok syms:40/42#197:ok fmt:ok -->
ml_IN <!-- open:ok syms:40/42#197:ok fmt:ok -->
mr <!-- open:ok syms:40/42#227:ok fmt:ok -->
mr_IN <!-- open:ok syms:40/42#227:ok fmt:ok -->
ms <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_BN <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_MY <!-- open:ok syms:40/42#169:ok fmt:ok -->
mt <!-- open:ok syms:40/42#190:ok fmt:ok -->
mt_MT <!-- open:ok syms:40/42#190:ok fmt:ok -->
nb <!-- open:ok syms:40/42#194:ok fmt:ok -->
nb_NO <!-- open:ok syms:40/42#194:ok fmt:ok -->
nl <!-- open:ok syms:40/42#192:ok fmt:ok -->
nl_BE <!-- open:ok syms:40/42#192:ok fmt:ok -->
nl_NL <!-- open:ok syms:40/42#192:ok fmt:ok -->
nn <!-- open:ok syms:40/42#175:ok fmt:ok -->
nn_NO <!-- open:ok syms:40/42#175:ok fmt:ok -->
om <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_ET <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_KE <!-- open:ok syms:40/42#208:ok fmt:ok -->
or <!-- open:ok syms:40/42#232:ok fmt:ok -->
or_IN <!-- open:ok syms:40/42#232:ok fmt:ok -->
pa <!-- open:ok syms:40/42#196:ok fmt:ok -->
pa_IN <!-- open:ok syms:40/42#196:ok fmt:ok -->
pl <!-- open:ok syms:40/42#209:ok fmt:ok -->
pl_PL <!-- open:ok syms:40/42#251:ok fmt:ok -->
ps <!-- open:ok syms:40/42#167:ok fmt:ok -->
ps_AF <!-- open:ok syms:40/42#167:ok fmt:ok -->
pt <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_BR <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_PT <!-- open:ok syms:40/42#214:ok fmt:ok -->
ro <!-- open:ok syms:40/42#182:ok fmt:ok -->
ro_RO <!-- open:ok syms:40/42#182:ok fmt:ok -->
ru <!-- open:ok syms:40/42#201:ok fmt:ok -->
ru_RU <!-- open:ok syms:40/42#201:ok fmt:ok -->
ru_UA <!-- open:ok syms:40/42#201:ok fmt:ok -->
sk <!-- open:ok syms:40/42#178:ok fmt:ok -->
sk_SK <!-- open:ok syms:40/42#178:ok fmt:ok -->
sl <!-- open:ok syms:40/42#189:ok fmt:ok -->
sl_SI <!-- open:ok syms:40/42#189:ok fmt:ok -->
so <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_DJ <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_ET <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_KE <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_SO <!-- open:ok syms:40/42#298:ok fmt:ok -->
sq <!-- open:ok syms:40/42#186:ok fmt:ok -->
sq_AL <!-- open:ok syms:40/42#186:ok fmt:ok -->
sr <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl_CS <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Latn <!-- open:ok syms:40/42#186:ok fmt:ok -->
sr_Latn_CS <!-- open:ok syms:40/42#186:ok fmt:ok -->
sv <!-- open:ok syms:40/42#177:ok fmt:ok -->
sv_FI <!-- open:ok syms:40/42#177:ok fmt:ok -->
sv_SE <!-- open:ok syms:40/42#177:ok fmt:ok -->
sw <!-- open:ok syms:40/42#210:ok fmt:ok -->
sw_KE <!-- open:ok syms:40/42#210:ok fmt:ok -->
sw_TZ <!-- open:ok syms:40/42#210:ok fmt:ok -->
ta <!-- open:ok syms:40/42#183:ok fmt:ok -->
ta_IN <!-- open:ok syms:40/42#183:ok fmt:ok -->
te <!-- open:ok syms:40/42#231:ok fmt:ok -->
te_IN <!-- open:ok syms:40/42#231:ok fmt:ok -->
th <!-- open:ok syms:40/42#233:ok fmt:ok -->
th_TH <!-- open:ok syms:40/42#233:ok fmt:ok -->
ti <!-- open:ok syms:40/42#133:ok fmt:ok -->
ti_ER <!-- open:ok syms:40/42#125:ok fmt:ok -->
ti_ET <!-- open:ok syms:40/42#133:ok fmt:ok -->
tr <!-- open:ok syms:40/42#171:ok fmt:ok -->
tr_TR <!-- open:ok syms:40/42#171:ok fmt:ok -->
uk <!-- open:ok syms:40/42#185:ok fmt:ok -->
uk_UA <!-- open:ok syms:40/42#185:ok fmt:ok -->
ur <!-- open:ok syms:40/42#49:ok fmt:ok -->
ur_IN <!-- open:ok syms:40/42#49:ok fmt:ok -->
ur_PK <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz <!-- open:ok syms:40/42#211:ok fmt:ok -->
uz_Cyrl <!-- open:ok syms:40/42#211:ok fmt:ok -->
uz_Cyrl_UZ <!-- open:ok syms:40/42#211:ok fmt:ok -->
uz_Latn <!-- open:ok syms:40/42#231:ok fmt:ok -->
uz_Latn_UZ <!-- open:ok syms:40/42#231:ok fmt:ok -->
vi <!-- open:ok syms:40/42#267:ok fmt:ok -->
vi_VN <!-- open:ok syms:40/42#267:ok fmt:ok -->
zh <!-- open:ok syms:40/42#92:ok fmt:ok -->
zh_Hans <!-- open:ok syms:40/42#92:ok fmt:ok -->
zh_Hans_CN <!-- open:ok syms:40/42#92:ok fmt:ok -->
zh_Hans_SG <!-- open:ok syms:40/42#92:ok fmt:ok -->
zh_Hant <!-- open:ok syms:40/42#92:ok fmt:ok -->
zh_Hant_HK <!-- open:ok syms:40/42#93:ok fmt:ok -->
zh_Hant_MO <!-- open:ok syms:40/42#93:ok fmt:ok -->
zh_Hant_TW <!-- open:ok syms:40/42#92:ok fmt:ok -->
</feature>
<feature type="collation" total="245" version="???">
af
af_ZA
am
am_ET
ar
ar_AE
ar_BH
ar_DZ
ar_EG
ar_IQ
ar_JO
ar_KW
ar_LB
ar_LY
ar_MA
ar_OM
ar_QA
ar_SA
ar_SD
ar_SY
ar_TN
ar_YE
as
as_IN
az
az_Cyrl
az_Cyrl_AZ
az_Latn
az_Latn_AZ
be
be_BY
bg
bg_BG
bn
bn_IN
ca
ca_ES
cs
cs_CZ
cy
cy_GB
da
da_DK
de
de_AT
de_BE
de_CH
de_DE
de_LU
el
el_GR
en
en_AU
en_BE
en_BW
en_CA
en_GB
en_HK
en_IE
en_IN
en_MT
en_NZ
en_PH
en_PK
en_SG
en_US
en_US_POSIX
en_VI
en_ZA
en_ZW
eo
es
es_AR
es_BO
es_CL
es_CO
es_CR
es_DO
es_EC
es_ES
es_GT
es_HN
es_MX
es_NI
es_PA
es_PE
es_PR
es_PY
es_SV
es_US
es_UY
es_VE
et
et_EE
eu
eu_ES
fa
fa_AF
fa_IR
fi
fi_FI
fo
fo_FO
fr
fr_BE
fr_CA
fr_CH
fr_FR
fr_LU
ga
ga_IE
gl
gl_ES
gu
gu_IN
gv
gv_GB
haw
haw_US
he
he_IL
hi
hi_IN
hr
hr_HR
hu
hu_HU
hy
hy_AM
hy_AM_REVISED
id
id_ID
is
is_IS
it
it_CH
it_IT
ja
ja_JP
kk
kk_KZ
kl
kl_GL
kn
kn_IN
ko
ko_KR
kok
kok_IN
kw
kw_GB
lt
lt_LT
lv
lv_LV
mk
mk_MK
ml
ml_IN
mr
mr_IN
ms
ms_BN
ms_MY
mt
mt_MT
nb
nb_NO
nl
nl_BE
nl_NL
nn
nn_NO
om
om_ET
om_KE
or
or_IN
pa
pa_IN
pl
pl_PL
ps
ps_AF
pt
pt_BR
pt_PT
ro
ro_RO
ru
ru_RU
ru_UA
sk
sk_SK
sl
sl_SI
so
so_DJ
so_ET
so_KE
so_SO
sq
sq_AL
sr
sr_Cyrl
sr_Cyrl_CS
sr_Latn
sr_Latn_CS
sv
sv_FI
sv_SE
sw
sw_KE
sw_TZ
ta
ta_IN
te
te_IN
th
th_TH
ti
ti_ER
ti_ET
tr
tr_TR
uk
uk_UA
ur
ur_IN
ur_PK
uz
uz_Cyrl
uz_Cyrl_UZ
uz_Latn
uz_Latn_UZ
vi
vi_VN
zh
zh_Hans
zh_Hans_CN
zh_Hans_SG
zh_Hant
zh_Hant_HK
zh_Hant_MO
zh_Hant_TW
</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,494 +0,0 @@
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<icuInfo>
<icuProducts>
<icuProduct type="icu4c">
<releases>
<release version="3.8">
<capabilities>
<feature type="unicode" version="5.0"/>
<feature type="uca" version="5.0"/>
<feature type="tz" version="2007g"/>
<feature type="formatting" total="266" version="???">
af <!-- open:ok syms:40/42#189:ok fmt:ok -->
af_NA <!-- open:ok syms:40/42#189:ok fmt:ok -->
af_ZA <!-- open:ok syms:40/42#189:ok fmt:ok -->
am <!-- open:ok syms:40/42#131:ok fmt:ok -->
am_ET <!-- open:ok syms:40/42#131:ok fmt:ok -->
ar <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_AE <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_BH <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_DZ <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_EG <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_IQ <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_JO <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_KW <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_LB <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_LY <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_MA <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_OM <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_QA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SD <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_SY <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_TN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_YE <!-- open:ok syms:40/42#220:ok fmt:ok -->
as <!-- open:ok syms:40/42#214:ok fmt:ok -->
as_IN <!-- open:ok syms:40/42#214:ok fmt:ok -->
az <!-- open:ok syms:40/42#49:ok fmt:ok -->
az_Cyrl <!-- open:ok syms:40/42#49:ok fmt:ok -->
az_Cyrl_AZ <!-- open:ok syms:40/42#49:ok fmt:ok -->
az_Latn <!-- open:ok syms:40/42#49:ok fmt:ok -->
az_Latn_AZ <!-- open:ok syms:40/42#49:ok fmt:ok -->
be <!-- open:ok syms:40/42#193:ok fmt:ok -->
be_BY <!-- open:ok syms:40/42#193:ok fmt:ok -->
bg <!-- open:ok syms:40/42#196:ok fmt:ok -->
bg_BG <!-- open:ok syms:40/42#196:ok fmt:ok -->
bn <!-- open:ok syms:40/42#242:ok fmt:ok -->
bn_BD <!-- open:ok syms:40/42#242:ok fmt:ok -->
bn_IN <!-- open:ok syms:40/42#242:ok fmt:ok -->
ca <!-- open:ok syms:40/42#196:ok fmt:ok -->
ca_ES <!-- open:ok syms:40/42#196:ok fmt:ok -->
cs <!-- open:ok syms:40/42#212:ok fmt:ok -->
cs_CZ <!-- open:ok syms:40/42#212:ok fmt:ok -->
cy <!-- open:ok syms:40/42#222:ok fmt:ok -->
cy_GB <!-- open:ok syms:40/42#222:ok fmt:ok -->
da <!-- open:ok syms:40/42#183:ok fmt:ok -->
da_DK <!-- open:ok syms:40/42#183:ok fmt:ok -->
de <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_AT <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_BE <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_CH <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_DE <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_LI <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_LU <!-- open:ok syms:40/42#188:ok fmt:ok -->
el <!-- open:ok syms:40/42#218:ok fmt:ok -->
el_CY <!-- open:ok syms:40/42#218:ok fmt:ok -->
el_GR <!-- open:ok syms:40/42#218:ok fmt:ok -->
en <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_AU <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BW <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_CA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_GB <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_HK <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IN <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_JM <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_MH <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_MT <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_NA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_NZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_PH <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_PK <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_SG <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_TT <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US_POSIX <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_VI <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZW <!-- open:ok syms:40/42#185:ok fmt:ok -->
eo <!-- open:ok syms:40/42#177:ok fmt:ok -->
es <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_AR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_BO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CL <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_DO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_EC <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_ES <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_GT <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_HN <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_MX <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_NI <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PA <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PE <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_SV <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_US <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_UY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_VE <!-- open:ok syms:40/42#188:ok fmt:ok -->
et <!-- open:ok syms:40/42#201:ok fmt:ok -->
et_EE <!-- open:ok syms:40/42#201:ok fmt:ok -->
eu <!-- open:ok syms:40/42#197:ok fmt:ok -->
eu_ES <!-- open:ok syms:40/42#197:ok fmt:ok -->
fa <!-- open:ok syms:40/42#214:ok fmt:ok -->
fa_AF <!-- open:ok syms:40/42#197:ok fmt:ok -->
fa_IR <!-- open:ok syms:40/42#214:ok fmt:ok -->
fi <!-- open:ok syms:40/42#232:ok fmt:ok -->
fi_FI <!-- open:ok syms:40/42#232:ok fmt:ok -->
fo <!-- open:ok syms:40/42#200:ok fmt:ok -->
fo_FO <!-- open:ok syms:40/42#200:ok fmt:ok -->
fr <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_BE <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_CA <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_CH <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_FR <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_LU <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_MC <!-- open:ok syms:40/42#215:ok fmt:ok -->
ga <!-- open:ok syms:40/42#247:ok fmt:ok -->
ga_IE <!-- open:ok syms:40/42#247:ok fmt:ok -->
gl <!-- open:ok syms:40/42#179:ok fmt:ok -->
gl_ES <!-- open:ok syms:40/42#179:ok fmt:ok -->
gu <!-- open:ok syms:40/42#206:ok fmt:ok -->
gu_IN <!-- open:ok syms:40/42#206:ok fmt:ok -->
gv <!-- open:ok syms:40/42#295:ok fmt:ok -->
gv_GB <!-- open:ok syms:40/42#295:ok fmt:ok -->
haw <!-- open:ok syms:40/42#199:ok fmt:ok -->
haw_US <!-- open:ok syms:40/42#199:ok fmt:ok -->
he <!-- open:ok syms:40/42#168:ok fmt:ok -->
he_IL <!-- open:ok syms:40/42#168:ok fmt:ok -->
hi <!-- open:ok syms:40/42#207:ok fmt:ok -->
hi_IN <!-- open:ok syms:40/42#207:ok fmt:ok -->
hr <!-- open:ok syms:40/42#203:ok fmt:ok -->
hr_HR <!-- open:ok syms:40/42#203:ok fmt:ok -->
hu <!-- open:ok syms:40/42#206:ok fmt:ok -->
hu_HU <!-- open:ok syms:40/42#206:ok fmt:ok -->
hy <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM_REVISED <!-- open:ok syms:40/42#204:ok fmt:ok -->
id <!-- open:ok syms:40/42#173:ok fmt:ok -->
id_ID <!-- open:ok syms:40/42#173:ok fmt:ok -->
is <!-- open:ok syms:40/42#206:ok fmt:ok -->
is_IS <!-- open:ok syms:40/42#206:ok fmt:ok -->
it <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_CH <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_IT <!-- open:ok syms:40/42#193:ok fmt:ok -->
ja <!-- open:ok syms:40/42#111:ok fmt:ok -->
ja_JP <!-- open:ok syms:40/42#111:ok fmt:ok -->
ka <!-- open:ok syms:40/42#49:ok fmt:ok -->
ka_GE <!-- open:ok syms:40/42#49:ok fmt:ok -->
kk <!-- open:ok syms:40/42#193:ok fmt:ok -->
kk_KZ <!-- open:ok syms:40/42#193:ok fmt:ok -->
kl <!-- open:ok syms:40/42#237:ok fmt:ok -->
kl_GL <!-- open:ok syms:40/42#237:ok fmt:ok -->
km <!-- open:ok syms:40/42#105:ok fmt:ok -->
km_KH <!-- open:ok syms:40/42#105:ok fmt:ok -->
kn <!-- open:ok syms:40/42#220:ok fmt:ok -->
kn_IN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ko <!-- open:ok syms:40/42#87:ok fmt:ok -->
ko_KR <!-- open:ok syms:40/42#87:ok fmt:ok -->
kok <!-- open:ok syms:40/42#243:ok fmt:ok -->
kok_IN <!-- open:ok syms:40/42#243:ok fmt:ok -->
kw <!-- open:ok syms:40/42#224:ok fmt:ok -->
kw_GB <!-- open:ok syms:40/42#224:ok fmt:ok -->
lt <!-- open:ok syms:40/42#231:ok fmt:ok -->
lt_LT <!-- open:ok syms:40/42#231:ok fmt:ok -->
lv <!-- open:ok syms:40/42#204:ok fmt:ok -->
lv_LV <!-- open:ok syms:40/42#204:ok fmt:ok -->
mk <!-- open:ok syms:40/42#209:ok fmt:ok -->
mk_MK <!-- open:ok syms:40/42#209:ok fmt:ok -->
ml <!-- open:ok syms:40/42#101:ok fmt:ok -->
ml_IN <!-- open:ok syms:40/42#101:ok fmt:ok -->
mr <!-- open:ok syms:40/42#227:ok fmt:ok -->
mr_IN <!-- open:ok syms:40/42#227:ok fmt:ok -->
ms <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_BN <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_MY <!-- open:ok syms:40/42#169:ok fmt:ok -->
mt <!-- open:ok syms:40/42#190:ok fmt:ok -->
mt_MT <!-- open:ok syms:40/42#190:ok fmt:ok -->
nb <!-- open:ok syms:40/42#200:ok fmt:ok -->
nb_NO <!-- open:ok syms:40/42#200:ok fmt:ok -->
nl <!-- open:ok syms:40/42#192:ok fmt:ok -->
nl_BE <!-- open:ok syms:40/42#192:ok fmt:ok -->
nl_NL <!-- open:ok syms:40/42#192:ok fmt:ok -->
nn <!-- open:ok syms:40/42#175:ok fmt:ok -->
nn_NO <!-- open:ok syms:40/42#175:ok fmt:ok -->
om <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_ET <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_KE <!-- open:ok syms:40/42#208:ok fmt:ok -->
or <!-- open:ok syms:40/42#49:ok fmt:ok -->
or_IN <!-- open:ok syms:40/42#49:ok fmt:ok -->
pa <!-- open:ok syms:40/42#196:ok fmt:ok -->
pa_Guru <!-- open:ok syms:40/42#196:ok fmt:ok -->
pa_Guru_IN <!-- open:ok syms:40/42#196:ok fmt:ok -->
pl <!-- open:ok syms:40/42#212:ok fmt:ok -->
pl_PL <!-- open:ok syms:40/42#212:ok fmt:ok -->
ps <!-- open:ok syms:40/42#202:ok fmt:ok -->
ps_AF <!-- open:ok syms:40/42#202:ok fmt:ok -->
pt <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_BR <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_PT <!-- open:ok syms:40/42#214:ok fmt:ok -->
ro <!-- open:ok syms:40/42#182:ok fmt:ok -->
ro_RO <!-- open:ok syms:40/42#182:ok fmt:ok -->
ru <!-- open:ok syms:40/42#201:ok fmt:ok -->
ru_RU <!-- open:ok syms:40/42#201:ok fmt:ok -->
ru_UA <!-- open:ok syms:40/42#201:ok fmt:ok -->
sk <!-- open:ok syms:40/42#178:ok fmt:ok -->
sk_SK <!-- open:ok syms:40/42#178:ok fmt:ok -->
sl <!-- open:ok syms:40/42#189:ok fmt:ok -->
sl_SI <!-- open:ok syms:40/42#189:ok fmt:ok -->
so <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_DJ <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_ET <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_KE <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_SO <!-- open:ok syms:40/42#298:ok fmt:ok -->
sq <!-- open:ok syms:40/42#186:ok fmt:ok -->
sq_AL <!-- open:ok syms:40/42#186:ok fmt:ok -->
sr <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl_BA <!-- open:ok syms:40/42#187:ok fmt:ok -->
sr_Cyrl_ME <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl_RS <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Latn <!-- open:ok syms:40/42#185:ok fmt:ok -->
sr_Latn_BA <!-- open:ok syms:40/42#185:ok fmt:ok -->
sr_Latn_ME <!-- open:ok syms:40/42#185:ok fmt:ok -->
sr_Latn_RS <!-- open:ok syms:40/42#185:ok fmt:ok -->
sv <!-- open:ok syms:40/42#185:ok fmt:ok -->
sv_FI <!-- open:ok syms:40/42#185:ok fmt:ok -->
sv_SE <!-- open:ok syms:40/42#185:ok fmt:ok -->
sw <!-- open:ok syms:40/42#186:ok fmt:ok -->
sw_KE <!-- open:ok syms:40/42#186:ok fmt:ok -->
sw_TZ <!-- open:ok syms:40/42#186:ok fmt:ok -->
ta <!-- open:ok syms:40/42#183:ok fmt:ok -->
ta_IN <!-- open:ok syms:40/42#183:ok fmt:ok -->
te <!-- open:ok syms:40/42#231:ok fmt:ok -->
te_IN <!-- open:ok syms:40/42#231:ok fmt:ok -->
th <!-- open:ok syms:39/41#218:ok fmt:ok -->
th_TH <!-- open:ok syms:39/41#218:ok fmt:ok -->
ti <!-- open:ok syms:40/42#133:ok fmt:ok -->
ti_ER <!-- open:ok syms:40/42#125:ok fmt:ok -->
ti_ET <!-- open:ok syms:40/42#133:ok fmt:ok -->
tr <!-- open:ok syms:40/42#171:ok fmt:ok -->
tr_TR <!-- open:ok syms:40/42#171:ok fmt:ok -->
uk <!-- open:ok syms:40/42#188:ok fmt:ok -->
uk_UA <!-- open:ok syms:40/42#188:ok fmt:ok -->
ur <!-- open:ok syms:40/42#177:ok fmt:ok -->
ur_IN <!-- open:ok syms:40/42#177:ok fmt:ok -->
ur_PK <!-- open:ok syms:40/42#177:ok fmt:ok -->
uz <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Arab <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Arab_AF <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Cyrl <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Cyrl_UZ <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Latn <!-- open:ok syms:40/42#231:ok fmt:ok -->
uz_Latn_UZ <!-- open:ok syms:40/42#231:ok fmt:ok -->
vi <!-- open:ok syms:40/42#267:ok fmt:ok -->
vi_VN <!-- open:ok syms:40/42#267:ok fmt:ok -->
zh <!-- open:ok syms:40/42#70:ok fmt:ok -->
zh_Hans <!-- open:ok syms:40/42#70:ok fmt:ok -->
zh_Hans_CN <!-- open:ok syms:40/42#70:ok fmt:ok -->
zh_Hans_SG <!-- open:ok syms:40/42#70:ok fmt:ok -->
zh_Hant <!-- open:ok syms:40/42#70:ok fmt:ok -->
zh_Hant_HK <!-- open:ok syms:40/42#70:ok fmt:ok -->
zh_Hant_MO <!-- open:ok syms:40/42#70:ok fmt:ok -->
zh_Hant_TW <!-- open:ok syms:40/42#70:ok fmt:ok -->
</feature>
<feature type="collation" total="204" version="???">
ar
ar_AE
ar_BH
ar_DZ
ar_EG
ar_IQ
ar_JO
ar_KW
ar_LB
ar_LY
ar_MA
ar_OM
ar_QA
ar_SA
ar_SD
ar_SY
ar_TN
ar_YE
as
as_IN
be
be_BY
bg
bg_BG
bn
ca
ca_ES
cs
cs_CZ
cy
da
da_DK
de
de_AT
de_BE
de_CH
de_DE
de_LU
el
el_GR
en
en_AU
en_BE
en_BW
en_CA
en_GB
en_HK
en_IE
en_IN
en_MT
en_NZ
en_PH
en_SG
en_US
en_US_POSIX
en_VI
en_ZA
en_ZW
eo
es
es_AR
es_BO
es_CL
es_CO
es_CR
es_DO
es_EC
es_ES
es_GT
es_HN
es_MX
es_NI
es_PA
es_PE
es_PR
es_PY
es_SV
es_US
es_UY
es_VE
et
et_EE
fa
fa_AF
fa_IR
fi
fi_FI
fo
fo_FO
fr
fr_BE
fr_CA
fr_CH
fr_FR
fr_LU
ga
ga_IE
gu
gu_IN
haw
he
he_IL
hi
hi_IN
hr
hr_HR
hu
hu_HU
id
id_ID
is
is_IS
it
it_CH
it_IT
ja
ja_JP
kk
kk_KZ
kl
kl_GL
km
kn
kn_IN
ko
ko_KR
kok
lt
lt_LT
lv
lv_LV
mk
mk_MK
ml
mr
mr_IN
ms
ms_BN
ms_MY
mt
mt_MT
nb
nb_NO
nl
nl_BE
nl_NL
nn
nn_NO
om
om_ET
om_KE
or
pa
pa_IN
pl
pl_PL
ps
ps_AF
pt
pt_BR
pt_PT
ro
ro_RO
ru
ru_RU
ru_UA
sk
sk_SK
sl
sl_SI
sq
sq_AL
sr
sr_Cyrl
sr_Cyrl_BA
sr_Cyrl_ME
sr_Cyrl_RS
sr_Latn
sr_Latn_BA
sr_Latn_ME
sr_Latn_RS
sv
sv_FI
sv_SE
ta
ta_IN
te
te_IN
th
th_TH
tr
tr_TR
uk
uk_UA
vi
vi_VN
zh
zh_Hans
zh_Hans_CN
zh_Hans_SG
zh_Hant
zh_Hant_HK
zh_Hant_MO
zh_Hant_TW
</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,494 +0,0 @@
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<icuInfo>
<icuProducts>
<icuProduct type="icu4c">
<releases>
<release version="3.8.1">
<capabilities>
<feature type="unicode" version="5.0"/>
<feature type="uca" version="5.0"/>
<feature type="tz" version="2007j"/>
<feature type="formatting" total="266" version="???">
af <!-- open:ok syms:40/42#189:ok fmt:ok -->
af_NA <!-- open:ok syms:40/42#189:ok fmt:ok -->
af_ZA <!-- open:ok syms:40/42#189:ok fmt:ok -->
am <!-- open:ok syms:40/42#131:ok fmt:ok -->
am_ET <!-- open:ok syms:40/42#131:ok fmt:ok -->
ar <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_AE <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_BH <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_DZ <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_EG <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_IQ <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_JO <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_KW <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_LB <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_LY <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_MA <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_OM <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_QA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SD <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_SY <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_TN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_YE <!-- open:ok syms:40/42#220:ok fmt:ok -->
as <!-- open:ok syms:40/42#214:ok fmt:ok -->
as_IN <!-- open:ok syms:40/42#214:ok fmt:ok -->
az <!-- open:ok syms:40/42#49:ok fmt:ok -->
az_Cyrl <!-- open:ok syms:40/42#49:ok fmt:ok -->
az_Cyrl_AZ <!-- open:ok syms:40/42#49:ok fmt:ok -->
az_Latn <!-- open:ok syms:40/42#49:ok fmt:ok -->
az_Latn_AZ <!-- open:ok syms:40/42#49:ok fmt:ok -->
be <!-- open:ok syms:40/42#193:ok fmt:ok -->
be_BY <!-- open:ok syms:40/42#193:ok fmt:ok -->
bg <!-- open:ok syms:40/42#196:ok fmt:ok -->
bg_BG <!-- open:ok syms:40/42#196:ok fmt:ok -->
bn <!-- open:ok syms:40/42#242:ok fmt:ok -->
bn_BD <!-- open:ok syms:40/42#242:ok fmt:ok -->
bn_IN <!-- open:ok syms:40/42#242:ok fmt:ok -->
ca <!-- open:ok syms:40/42#196:ok fmt:ok -->
ca_ES <!-- open:ok syms:40/42#196:ok fmt:ok -->
cs <!-- open:ok syms:40/42#212:ok fmt:ok -->
cs_CZ <!-- open:ok syms:40/42#212:ok fmt:ok -->
cy <!-- open:ok syms:40/42#222:ok fmt:ok -->
cy_GB <!-- open:ok syms:40/42#222:ok fmt:ok -->
da <!-- open:ok syms:40/42#183:ok fmt:ok -->
da_DK <!-- open:ok syms:40/42#183:ok fmt:ok -->
de <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_AT <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_BE <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_CH <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_DE <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_LI <!-- open:ok syms:40/42#188:ok fmt:ok -->
de_LU <!-- open:ok syms:40/42#188:ok fmt:ok -->
el <!-- open:ok syms:40/42#218:ok fmt:ok -->
el_CY <!-- open:ok syms:40/42#218:ok fmt:ok -->
el_GR <!-- open:ok syms:40/42#218:ok fmt:ok -->
en <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_AU <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BW <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_CA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_GB <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_HK <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IN <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_JM <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_MH <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_MT <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_NA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_NZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_PH <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_PK <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_SG <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_TT <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US_POSIX <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_VI <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZW <!-- open:ok syms:40/42#185:ok fmt:ok -->
eo <!-- open:ok syms:40/42#177:ok fmt:ok -->
es <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_AR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_BO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CL <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_DO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_EC <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_ES <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_GT <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_HN <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_MX <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_NI <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PA <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PE <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_SV <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_US <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_UY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_VE <!-- open:ok syms:40/42#188:ok fmt:ok -->
et <!-- open:ok syms:40/42#201:ok fmt:ok -->
et_EE <!-- open:ok syms:40/42#201:ok fmt:ok -->
eu <!-- open:ok syms:40/42#197:ok fmt:ok -->
eu_ES <!-- open:ok syms:40/42#197:ok fmt:ok -->
fa <!-- open:ok syms:40/42#214:ok fmt:ok -->
fa_AF <!-- open:ok syms:40/42#197:ok fmt:ok -->
fa_IR <!-- open:ok syms:40/42#214:ok fmt:ok -->
fi <!-- open:ok syms:40/42#232:ok fmt:ok -->
fi_FI <!-- open:ok syms:40/42#232:ok fmt:ok -->
fo <!-- open:ok syms:40/42#200:ok fmt:ok -->
fo_FO <!-- open:ok syms:40/42#200:ok fmt:ok -->
fr <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_BE <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_CA <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_CH <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_FR <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_LU <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_MC <!-- open:ok syms:40/42#215:ok fmt:ok -->
ga <!-- open:ok syms:40/42#247:ok fmt:ok -->
ga_IE <!-- open:ok syms:40/42#247:ok fmt:ok -->
gl <!-- open:ok syms:40/42#179:ok fmt:ok -->
gl_ES <!-- open:ok syms:40/42#179:ok fmt:ok -->
gu <!-- open:ok syms:40/42#206:ok fmt:ok -->
gu_IN <!-- open:ok syms:40/42#206:ok fmt:ok -->
gv <!-- open:ok syms:40/42#295:ok fmt:ok -->
gv_GB <!-- open:ok syms:40/42#295:ok fmt:ok -->
haw <!-- open:ok syms:40/42#199:ok fmt:ok -->
haw_US <!-- open:ok syms:40/42#199:ok fmt:ok -->
he <!-- open:ok syms:40/42#168:ok fmt:ok -->
he_IL <!-- open:ok syms:40/42#168:ok fmt:ok -->
hi <!-- open:ok syms:40/42#207:ok fmt:ok -->
hi_IN <!-- open:ok syms:40/42#207:ok fmt:ok -->
hr <!-- open:ok syms:40/42#203:ok fmt:ok -->
hr_HR <!-- open:ok syms:40/42#203:ok fmt:ok -->
hu <!-- open:ok syms:40/42#206:ok fmt:ok -->
hu_HU <!-- open:ok syms:40/42#206:ok fmt:ok -->
hy <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM_REVISED <!-- open:ok syms:40/42#204:ok fmt:ok -->
id <!-- open:ok syms:40/42#173:ok fmt:ok -->
id_ID <!-- open:ok syms:40/42#173:ok fmt:ok -->
is <!-- open:ok syms:40/42#206:ok fmt:ok -->
is_IS <!-- open:ok syms:40/42#206:ok fmt:ok -->
it <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_CH <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_IT <!-- open:ok syms:40/42#193:ok fmt:ok -->
ja <!-- open:ok syms:40/42#111:ok fmt:ok -->
ja_JP <!-- open:ok syms:40/42#111:ok fmt:ok -->
ka <!-- open:ok syms:40/42#49:ok fmt:ok -->
ka_GE <!-- open:ok syms:40/42#49:ok fmt:ok -->
kk <!-- open:ok syms:40/42#193:ok fmt:ok -->
kk_KZ <!-- open:ok syms:40/42#193:ok fmt:ok -->
kl <!-- open:ok syms:40/42#237:ok fmt:ok -->
kl_GL <!-- open:ok syms:40/42#237:ok fmt:ok -->
km <!-- open:ok syms:40/42#105:ok fmt:ok -->
km_KH <!-- open:ok syms:40/42#105:ok fmt:ok -->
kn <!-- open:ok syms:40/42#220:ok fmt:ok -->
kn_IN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ko <!-- open:ok syms:40/42#87:ok fmt:ok -->
ko_KR <!-- open:ok syms:40/42#87:ok fmt:ok -->
kok <!-- open:ok syms:40/42#243:ok fmt:ok -->
kok_IN <!-- open:ok syms:40/42#243:ok fmt:ok -->
kw <!-- open:ok syms:40/42#224:ok fmt:ok -->
kw_GB <!-- open:ok syms:40/42#224:ok fmt:ok -->
lt <!-- open:ok syms:40/42#231:ok fmt:ok -->
lt_LT <!-- open:ok syms:40/42#231:ok fmt:ok -->
lv <!-- open:ok syms:40/42#204:ok fmt:ok -->
lv_LV <!-- open:ok syms:40/42#204:ok fmt:ok -->
mk <!-- open:ok syms:40/42#209:ok fmt:ok -->
mk_MK <!-- open:ok syms:40/42#209:ok fmt:ok -->
ml <!-- open:ok syms:40/42#101:ok fmt:ok -->
ml_IN <!-- open:ok syms:40/42#101:ok fmt:ok -->
mr <!-- open:ok syms:40/42#227:ok fmt:ok -->
mr_IN <!-- open:ok syms:40/42#227:ok fmt:ok -->
ms <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_BN <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_MY <!-- open:ok syms:40/42#169:ok fmt:ok -->
mt <!-- open:ok syms:40/42#190:ok fmt:ok -->
mt_MT <!-- open:ok syms:40/42#190:ok fmt:ok -->
nb <!-- open:ok syms:40/42#200:ok fmt:ok -->
nb_NO <!-- open:ok syms:40/42#200:ok fmt:ok -->
nl <!-- open:ok syms:40/42#192:ok fmt:ok -->
nl_BE <!-- open:ok syms:40/42#192:ok fmt:ok -->
nl_NL <!-- open:ok syms:40/42#192:ok fmt:ok -->
nn <!-- open:ok syms:40/42#175:ok fmt:ok -->
nn_NO <!-- open:ok syms:40/42#175:ok fmt:ok -->
om <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_ET <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_KE <!-- open:ok syms:40/42#208:ok fmt:ok -->
or <!-- open:ok syms:40/42#49:ok fmt:ok -->
or_IN <!-- open:ok syms:40/42#49:ok fmt:ok -->
pa <!-- open:ok syms:40/42#196:ok fmt:ok -->
pa_Guru <!-- open:ok syms:40/42#196:ok fmt:ok -->
pa_Guru_IN <!-- open:ok syms:40/42#196:ok fmt:ok -->
pl <!-- open:ok syms:40/42#212:ok fmt:ok -->
pl_PL <!-- open:ok syms:40/42#212:ok fmt:ok -->
ps <!-- open:ok syms:40/42#202:ok fmt:ok -->
ps_AF <!-- open:ok syms:40/42#202:ok fmt:ok -->
pt <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_BR <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_PT <!-- open:ok syms:40/42#214:ok fmt:ok -->
ro <!-- open:ok syms:40/42#182:ok fmt:ok -->
ro_RO <!-- open:ok syms:40/42#182:ok fmt:ok -->
ru <!-- open:ok syms:40/42#201:ok fmt:ok -->
ru_RU <!-- open:ok syms:40/42#201:ok fmt:ok -->
ru_UA <!-- open:ok syms:40/42#201:ok fmt:ok -->
sk <!-- open:ok syms:40/42#178:ok fmt:ok -->
sk_SK <!-- open:ok syms:40/42#178:ok fmt:ok -->
sl <!-- open:ok syms:40/42#189:ok fmt:ok -->
sl_SI <!-- open:ok syms:40/42#189:ok fmt:ok -->
so <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_DJ <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_ET <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_KE <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_SO <!-- open:ok syms:40/42#298:ok fmt:ok -->
sq <!-- open:ok syms:40/42#186:ok fmt:ok -->
sq_AL <!-- open:ok syms:40/42#186:ok fmt:ok -->
sr <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl_BA <!-- open:ok syms:40/42#187:ok fmt:ok -->
sr_Cyrl_ME <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl_RS <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Latn <!-- open:ok syms:40/42#185:ok fmt:ok -->
sr_Latn_BA <!-- open:ok syms:40/42#185:ok fmt:ok -->
sr_Latn_ME <!-- open:ok syms:40/42#185:ok fmt:ok -->
sr_Latn_RS <!-- open:ok syms:40/42#185:ok fmt:ok -->
sv <!-- open:ok syms:40/42#185:ok fmt:ok -->
sv_FI <!-- open:ok syms:40/42#185:ok fmt:ok -->
sv_SE <!-- open:ok syms:40/42#185:ok fmt:ok -->
sw <!-- open:ok syms:40/42#186:ok fmt:ok -->
sw_KE <!-- open:ok syms:40/42#186:ok fmt:ok -->
sw_TZ <!-- open:ok syms:40/42#186:ok fmt:ok -->
ta <!-- open:ok syms:40/42#183:ok fmt:ok -->
ta_IN <!-- open:ok syms:40/42#183:ok fmt:ok -->
te <!-- open:ok syms:40/42#231:ok fmt:ok -->
te_IN <!-- open:ok syms:40/42#231:ok fmt:ok -->
th <!-- open:ok syms:39/41#218:ok fmt:ok -->
th_TH <!-- open:ok syms:39/41#218:ok fmt:ok -->
ti <!-- open:ok syms:40/42#133:ok fmt:ok -->
ti_ER <!-- open:ok syms:40/42#125:ok fmt:ok -->
ti_ET <!-- open:ok syms:40/42#133:ok fmt:ok -->
tr <!-- open:ok syms:40/42#171:ok fmt:ok -->
tr_TR <!-- open:ok syms:40/42#171:ok fmt:ok -->
uk <!-- open:ok syms:40/42#188:ok fmt:ok -->
uk_UA <!-- open:ok syms:40/42#188:ok fmt:ok -->
ur <!-- open:ok syms:40/42#177:ok fmt:ok -->
ur_IN <!-- open:ok syms:40/42#177:ok fmt:ok -->
ur_PK <!-- open:ok syms:40/42#177:ok fmt:ok -->
uz <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Arab <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Arab_AF <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Cyrl <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Cyrl_UZ <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Latn <!-- open:ok syms:40/42#231:ok fmt:ok -->
uz_Latn_UZ <!-- open:ok syms:40/42#231:ok fmt:ok -->
vi <!-- open:ok syms:40/42#267:ok fmt:ok -->
vi_VN <!-- open:ok syms:40/42#267:ok fmt:ok -->
zh <!-- open:ok syms:40/42#70:ok fmt:ok -->
zh_Hans <!-- open:ok syms:40/42#70:ok fmt:ok -->
zh_Hans_CN <!-- open:ok syms:40/42#70:ok fmt:ok -->
zh_Hans_SG <!-- open:ok syms:40/42#70:ok fmt:ok -->
zh_Hant <!-- open:ok syms:40/42#70:ok fmt:ok -->
zh_Hant_HK <!-- open:ok syms:40/42#70:ok fmt:ok -->
zh_Hant_MO <!-- open:ok syms:40/42#70:ok fmt:ok -->
zh_Hant_TW <!-- open:ok syms:40/42#70:ok fmt:ok -->
</feature>
<feature type="collation" total="204" version="???">
ar
ar_AE
ar_BH
ar_DZ
ar_EG
ar_IQ
ar_JO
ar_KW
ar_LB
ar_LY
ar_MA
ar_OM
ar_QA
ar_SA
ar_SD
ar_SY
ar_TN
ar_YE
as
as_IN
be
be_BY
bg
bg_BG
bn
ca
ca_ES
cs
cs_CZ
cy
da
da_DK
de
de_AT
de_BE
de_CH
de_DE
de_LU
el
el_GR
en
en_AU
en_BE
en_BW
en_CA
en_GB
en_HK
en_IE
en_IN
en_MT
en_NZ
en_PH
en_SG
en_US
en_US_POSIX
en_VI
en_ZA
en_ZW
eo
es
es_AR
es_BO
es_CL
es_CO
es_CR
es_DO
es_EC
es_ES
es_GT
es_HN
es_MX
es_NI
es_PA
es_PE
es_PR
es_PY
es_SV
es_US
es_UY
es_VE
et
et_EE
fa
fa_AF
fa_IR
fi
fi_FI
fo
fo_FO
fr
fr_BE
fr_CA
fr_CH
fr_FR
fr_LU
ga
ga_IE
gu
gu_IN
haw
he
he_IL
hi
hi_IN
hr
hr_HR
hu
hu_HU
id
id_ID
is
is_IS
it
it_CH
it_IT
ja
ja_JP
kk
kk_KZ
kl
kl_GL
km
kn
kn_IN
ko
ko_KR
kok
lt
lt_LT
lv
lv_LV
mk
mk_MK
ml
mr
mr_IN
ms
ms_BN
ms_MY
mt
mt_MT
nb
nb_NO
nl
nl_BE
nl_NL
nn
nn_NO
om
om_ET
om_KE
or
pa
pa_IN
pl
pl_PL
ps
ps_AF
pt
pt_BR
pt_PT
ro
ro_RO
ru
ru_RU
ru_UA
sk
sk_SK
sl
sl_SI
sq
sq_AL
sr
sr_Cyrl
sr_Cyrl_BA
sr_Cyrl_ME
sr_Cyrl_RS
sr_Latn
sr_Latn_BA
sr_Latn_ME
sr_Latn_RS
sv
sv_FI
sv_SE
ta
ta_IN
te
te_IN
th
th_TH
tr
tr_TR
uk
uk_UA
vi
vi_VN
zh
zh_Hans
zh_Hans_CN
zh_Hans_SG
zh_Hant
zh_Hant_HK
zh_Hant_MO
zh_Hant_TW
</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,518 +0,0 @@
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<icuInfo>
<icuProducts>
<icuProduct type="icu4c">
<releases>
<release version="4.0">
<capabilities>
<feature type="unicode" version="5.1"/>
<feature type="uca" version="5.1"/>
<feature type="tz" version="2008c"/>
<feature type="cldr" version="1.6"/>
<feature type="formatting" total="282" version="???">
af <!-- open:ok syms:40/42#189:ok fmt:ok -->
af_NA <!-- open:ok syms:40/42#189:ok fmt:ok -->
af_ZA <!-- open:ok syms:40/42#189:ok fmt:ok -->
am <!-- open:ok syms:40/42#131:ok fmt:ok -->
am_ET <!-- open:ok syms:40/42#131:ok fmt:ok -->
ar <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_AE <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_BH <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_DZ <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_EG <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_IQ <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_JO <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_KW <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_LB <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_LY <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_MA <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_OM <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_QA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SD <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_SY <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_TN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_YE <!-- open:ok syms:40/42#220:ok fmt:ok -->
as <!-- open:ok syms:40/42#214:ok fmt:ok -->
as_IN <!-- open:ok syms:40/42#214:ok fmt:ok -->
az <!-- open:ok syms:40/42#185:ok fmt:ok -->
az_Cyrl <!-- open:ok syms:40/42#185:ok fmt:ok -->
az_Cyrl_AZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
az_Latn <!-- open:ok syms:40/42#185:ok fmt:ok -->
az_Latn_AZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
be <!-- open:ok syms:40/42#193:ok fmt:ok -->
be_BY <!-- open:ok syms:40/42#193:ok fmt:ok -->
bg <!-- open:ok syms:40/42#196:ok fmt:ok -->
bg_BG <!-- open:ok syms:40/42#196:ok fmt:ok -->
bn <!-- open:ok syms:40/42#256:ok fmt:ok -->
bn_BD <!-- open:ok syms:40/42#256:ok fmt:ok -->
bn_IN <!-- open:ok syms:40/42#256:ok fmt:ok -->
ca <!-- open:ok syms:40/42#196:ok fmt:ok -->
ca_ES <!-- open:ok syms:40/42#196:ok fmt:ok -->
cs <!-- open:ok syms:40/42#212:ok fmt:ok -->
cs_CZ <!-- open:ok syms:40/42#212:ok fmt:ok -->
cy <!-- open:ok syms:40/42#221:ok fmt:ok -->
cy_GB <!-- open:ok syms:40/42#221:ok fmt:ok -->
da <!-- open:ok syms:40/42#183:ok fmt:ok -->
da_DK <!-- open:ok syms:40/42#183:ok fmt:ok -->
de <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_AT <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_BE <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_CH <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_DE <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_LI <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_LU <!-- open:ok syms:40/42#195:ok fmt:ok -->
el <!-- open:ok syms:40/42#218:ok fmt:ok -->
el_CY <!-- open:ok syms:40/42#218:ok fmt:ok -->
el_GR <!-- open:ok syms:40/42#218:ok fmt:ok -->
en <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_AU <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BW <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_CA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_GB <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_HK <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IN <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_JM <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_MH <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_MT <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_NA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_NZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_PH <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_PK <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_SG <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_TT <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US_POSIX <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_VI <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZW <!-- open:ok syms:40/42#185:ok fmt:ok -->
eo <!-- open:ok syms:40/42#177:ok fmt:ok -->
es <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_AR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_BO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CL <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_DO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_EC <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_ES <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_GT <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_HN <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_MX <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_NI <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PA <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PE <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_SV <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_US <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_UY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_VE <!-- open:ok syms:40/42#188:ok fmt:ok -->
et <!-- open:ok syms:40/42#201:ok fmt:ok -->
et_EE <!-- open:ok syms:40/42#201:ok fmt:ok -->
eu <!-- open:ok syms:40/42#197:ok fmt:ok -->
eu_ES <!-- open:ok syms:40/42#197:ok fmt:ok -->
fa <!-- open:ok syms:40/42#214:ok fmt:ok -->
fa_AF <!-- open:ok syms:40/42#197:ok fmt:ok -->
fa_IR <!-- open:ok syms:40/42#214:ok fmt:ok -->
fi <!-- open:ok syms:40/42#270:ok fmt:ok -->
fi_FI <!-- open:ok syms:40/42#270:ok fmt:ok -->
fo <!-- open:ok syms:40/42#200:ok fmt:ok -->
fo_FO <!-- open:ok syms:40/42#200:ok fmt:ok -->
fr <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_BE <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_CA <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_CH <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_FR <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_LU <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_MC <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_SN <!-- open:ok syms:40/42#215:ok fmt:ok -->
ga <!-- open:ok syms:40/42#247:ok fmt:ok -->
ga_IE <!-- open:ok syms:40/42#247:ok fmt:ok -->
gl <!-- open:ok syms:40/42#182:ok fmt:ok -->
gl_ES <!-- open:ok syms:40/42#182:ok fmt:ok -->
gu <!-- open:ok syms:40/42#206:ok fmt:ok -->
gu_IN <!-- open:ok syms:40/42#206:ok fmt:ok -->
gv <!-- open:ok syms:40/42#295:ok fmt:ok -->
gv_GB <!-- open:ok syms:40/42#295:ok fmt:ok -->
ha <!-- open:ok syms:40/42#178:ok fmt:ok -->
ha_Latn <!-- open:ok syms:40/42#178:ok fmt:ok -->
ha_Latn_NG <!-- open:ok syms:40/42#178:ok fmt:ok -->
haw <!-- open:ok syms:40/42#199:ok fmt:ok -->
haw_US <!-- open:ok syms:40/42#199:ok fmt:ok -->
he <!-- open:ok syms:40/42#168:ok fmt:ok -->
he_IL <!-- open:ok syms:40/42#168:ok fmt:ok -->
hi <!-- open:ok syms:40/42#207:ok fmt:ok -->
hi_IN <!-- open:ok syms:40/42#207:ok fmt:ok -->
hr <!-- open:ok syms:40/42#203:ok fmt:ok -->
hr_HR <!-- open:ok syms:40/42#203:ok fmt:ok -->
hu <!-- open:ok syms:40/42#206:ok fmt:ok -->
hu_HU <!-- open:ok syms:40/42#206:ok fmt:ok -->
hy <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM_REVISED <!-- open:ok syms:40/42#204:ok fmt:ok -->
id <!-- open:ok syms:40/42#173:ok fmt:ok -->
id_ID <!-- open:ok syms:40/42#173:ok fmt:ok -->
ii <!-- open:ok syms:40/42#93:ok fmt:ok -->
ii_CN <!-- open:ok syms:40/42#93:ok fmt:ok -->
is <!-- open:ok syms:40/42#223:ok fmt:ok -->
is_IS <!-- open:ok syms:40/42#223:ok fmt:ok -->
it <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_CH <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_IT <!-- open:ok syms:40/42#193:ok fmt:ok -->
ja <!-- open:ok syms:40/42#87:ok fmt:ok -->
ja_JP <!-- open:ok syms:40/42#87:ok fmt:ok -->
ka <!-- open:ok syms:40/42#49:ok fmt:ok -->
ka_GE <!-- open:ok syms:40/42#49:ok fmt:ok -->
kk <!-- open:ok syms:40/42#193:ok fmt:ok -->
kk_Cyrl <!-- open:ok syms:40/42#193:ok fmt:ok -->
kk_Cyrl_KZ <!-- open:ok syms:40/42#193:ok fmt:ok -->
kl <!-- open:ok syms:40/42#237:ok fmt:ok -->
kl_GL <!-- open:ok syms:40/42#237:ok fmt:ok -->
km <!-- open:ok syms:40/42#105:ok fmt:ok -->
km_KH <!-- open:ok syms:40/42#105:ok fmt:ok -->
kn <!-- open:ok syms:40/42#220:ok fmt:ok -->
kn_IN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ko <!-- open:ok syms:40/42#87:ok fmt:ok -->
ko_KR <!-- open:ok syms:40/42#87:ok fmt:ok -->
kok <!-- open:ok syms:40/42#243:ok fmt:ok -->
kok_IN <!-- open:ok syms:40/42#243:ok fmt:ok -->
kw <!-- open:ok syms:40/42#224:ok fmt:ok -->
kw_GB <!-- open:ok syms:40/42#224:ok fmt:ok -->
lt <!-- open:ok syms:40/42#231:ok fmt:ok -->
lt_LT <!-- open:ok syms:40/42#231:ok fmt:ok -->
lv <!-- open:ok syms:40/42#204:ok fmt:ok -->
lv_LV <!-- open:ok syms:40/42#204:ok fmt:ok -->
mk <!-- open:ok syms:40/42#208:ok fmt:ok -->
mk_MK <!-- open:ok syms:40/42#208:ok fmt:ok -->
ml <!-- open:ok syms:40/42#214:ok fmt:ok -->
ml_IN <!-- open:ok syms:40/42#214:ok fmt:ok -->
mr <!-- open:ok syms:40/42#231:ok fmt:ok -->
mr_IN <!-- open:ok syms:40/42#231:ok fmt:ok -->
ms <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_BN <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_MY <!-- open:ok syms:40/42#169:ok fmt:ok -->
mt <!-- open:ok syms:40/42#190:ok fmt:ok -->
mt_MT <!-- open:ok syms:40/42#190:ok fmt:ok -->
nb <!-- open:ok syms:40/42#200:ok fmt:ok -->
nb_NO <!-- open:ok syms:40/42#200:ok fmt:ok -->
ne <!-- open:ok syms:40/42#55:ok fmt:ok -->
ne_IN <!-- open:ok syms:40/42#55:ok fmt:ok -->
ne_NP <!-- open:ok syms:40/42#55:ok fmt:ok -->
nl <!-- open:ok syms:40/42#192:ok fmt:ok -->
nl_BE <!-- open:ok syms:40/42#192:ok fmt:ok -->
nl_NL <!-- open:ok syms:40/42#192:ok fmt:ok -->
nn <!-- open:ok syms:40/42#176:ok fmt:ok -->
nn_NO <!-- open:ok syms:40/42#176:ok fmt:ok -->
om <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_ET <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_KE <!-- open:ok syms:40/42#208:ok fmt:ok -->
or <!-- open:ok syms:40/42#232:ok fmt:ok -->
or_IN <!-- open:ok syms:40/42#232:ok fmt:ok -->
pa <!-- open:ok syms:40/42#196:ok fmt:ok -->
pa_Arab <!-- open:ok syms:40/42#177:ok fmt:ok -->
pa_Arab_PK <!-- open:ok syms:40/42#177:ok fmt:ok -->
pa_Guru <!-- open:ok syms:40/42#196:ok fmt:ok -->
pa_Guru_IN <!-- open:ok syms:40/42#196:ok fmt:ok -->
pl <!-- open:ok syms:40/42#212:ok fmt:ok -->
pl_PL <!-- open:ok syms:40/42#212:ok fmt:ok -->
ps <!-- open:ok syms:40/42#202:ok fmt:ok -->
ps_AF <!-- open:ok syms:40/42#202:ok fmt:ok -->
pt <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_BR <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_PT <!-- open:ok syms:40/42#214:ok fmt:ok -->
ro <!-- open:ok syms:40/42#194:ok fmt:ok -->
ro_RO <!-- open:ok syms:40/42#194:ok fmt:ok -->
ru <!-- open:ok syms:40/42#201:ok fmt:ok -->
ru_RU <!-- open:ok syms:40/42#201:ok fmt:ok -->
ru_UA <!-- open:ok syms:40/42#201:ok fmt:ok -->
si <!-- open:ok syms:40/42#217:ok fmt:ok -->
si_LK <!-- open:ok syms:40/42#217:ok fmt:ok -->
sk <!-- open:ok syms:40/42#178:ok fmt:ok -->
sk_SK <!-- open:ok syms:40/42#178:ok fmt:ok -->
sl <!-- open:ok syms:40/42#189:ok fmt:ok -->
sl_SI <!-- open:ok syms:40/42#189:ok fmt:ok -->
so <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_DJ <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_ET <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_KE <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_SO <!-- open:ok syms:40/42#298:ok fmt:ok -->
sq <!-- open:ok syms:40/42#186:ok fmt:ok -->
sq_AL <!-- open:ok syms:40/42#186:ok fmt:ok -->
sr <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl_BA <!-- open:ok syms:40/42#187:ok fmt:ok -->
sr_Cyrl_ME <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl_RS <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Latn <!-- open:ok syms:40/42#185:ok fmt:ok -->
sr_Latn_BA <!-- open:ok syms:40/42#185:ok fmt:ok -->
sr_Latn_ME <!-- open:ok syms:40/42#185:ok fmt:ok -->
sr_Latn_RS <!-- open:ok syms:40/42#185:ok fmt:ok -->
sv <!-- open:ok syms:40/42#185:ok fmt:ok -->
sv_FI <!-- open:ok syms:40/42#185:ok fmt:ok -->
sv_SE <!-- open:ok syms:40/42#185:ok fmt:ok -->
sw <!-- open:ok syms:40/42#186:ok fmt:ok -->
sw_KE <!-- open:ok syms:40/42#186:ok fmt:ok -->
sw_TZ <!-- open:ok syms:40/42#186:ok fmt:ok -->
ta <!-- open:ok syms:40/42#183:ok fmt:ok -->
ta_IN <!-- open:ok syms:40/42#183:ok fmt:ok -->
te <!-- open:ok syms:40/42#231:ok fmt:ok -->
te_IN <!-- open:ok syms:40/42#231:ok fmt:ok -->
th <!-- open:ok syms:39/41#218:ok fmt:ok -->
th_TH <!-- open:ok syms:39/41#218:ok fmt:ok -->
ti <!-- open:ok syms:40/42#133:ok fmt:ok -->
ti_ER <!-- open:ok syms:40/42#125:ok fmt:ok -->
ti_ET <!-- open:ok syms:40/42#133:ok fmt:ok -->
tr <!-- open:ok syms:40/42#171:ok fmt:ok -->
tr_TR <!-- open:ok syms:40/42#171:ok fmt:ok -->
uk <!-- open:ok syms:40/42#204:ok fmt:ok -->
uk_UA <!-- open:ok syms:40/42#204:ok fmt:ok -->
ur <!-- open:ok syms:40/42#179:ok fmt:ok -->
ur_IN <!-- open:ok syms:40/42#179:ok fmt:ok -->
ur_PK <!-- open:ok syms:40/42#179:ok fmt:ok -->
uz <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Arab <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Arab_AF <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Cyrl <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Cyrl_UZ <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Latn <!-- open:ok syms:40/42#231:ok fmt:ok -->
uz_Latn_UZ <!-- open:ok syms:40/42#231:ok fmt:ok -->
vi <!-- open:ok syms:40/42#267:ok fmt:ok -->
vi_VN <!-- open:ok syms:40/42#267:ok fmt:ok -->
zh <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans_CN <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans_HK <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans_MO <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans_SG <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hant <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hant_HK <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hant_MO <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hant_TW <!-- open:ok syms:40/42#94:ok fmt:ok -->
</feature>
<feature type="collation" total="211" version="???">
ar
ar_AE
ar_BH
ar_DZ
ar_EG
ar_IQ
ar_JO
ar_KW
ar_LB
ar_LY
ar_MA
ar_OM
ar_QA
ar_SA
ar_SD
ar_SY
ar_TN
ar_YE
as
as_IN
be
be_BY
bg
bg_BG
bn
bn_IN
ca
ca_ES
cs
cs_CZ
cy
da
da_DK
de
de_AT
de_BE
de_CH
de_DE
de_LU
el
el_GR
en
en_AU
en_BE
en_BW
en_CA
en_GB
en_HK
en_IE
en_IN
en_MT
en_NZ
en_PH
en_SG
en_US
en_US_POSIX
en_VI
en_ZA
en_ZW
eo
es
es_AR
es_BO
es_CL
es_CO
es_CR
es_DO
es_EC
es_ES
es_GT
es_HN
es_MX
es_NI
es_PA
es_PE
es_PR
es_PY
es_SV
es_US
es_UY
es_VE
et
et_EE
fa
fa_AF
fa_IR
fi
fi_FI
fo
fo_FO
fr
fr_BE
fr_CA
fr_CH
fr_FR
fr_LU
ga
ga_IE
gu
gu_IN
haw
he
he_IL
hi
hi_IN
hr
hr_HR
hu
hu_HU
id
id_ID
is
is_IS
it
it_CH
it_IT
ja
ja_JP
kk
kk_KZ
kl
kl_GL
km
kn
kn_IN
ko
ko_KR
kok
lt
lt_LT
lv
lv_LV
mk
mk_MK
ml
mr
mr_IN
ms
ms_BN
ms_MY
mt
mt_MT
nb
nb_NO
nl
nl_BE
nl_NL
nn
nn_NO
om
om_ET
om_KE
or
pa
pa_Arab
pa_Arab_PK
pa_Guru
pa_Guru_IN
pl
pl_PL
ps
ps_AF
pt
pt_BR
pt_PT
ro
ro_RO
ru
ru_RU
ru_UA
sk
sk_SK
sl
sl_SI
sq
sq_AL
sr
sr_Cyrl
sr_Cyrl_BA
sr_Cyrl_ME
sr_Cyrl_RS
sr_Latn
sr_Latn_BA
sr_Latn_ME
sr_Latn_RS
sv
sv_FI
sv_SE
ta
ta_IN
te
te_IN
th
th_TH
tr
tr_TR
uk
uk_UA
ur
ur_IN
ur_PK
vi
vi_VN
zh
zh_Hans
zh_Hans_CN
zh_Hans_SG
zh_Hant
zh_Hant_HK
zh_Hant_MO
zh_Hant_TW
</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,518 +0,0 @@
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<icuInfo>
<icuProducts>
<icuProduct type="icu4c">
<releases>
<release version="4.0.1">
<capabilities>
<feature type="unicode" version="5.1"/>
<feature type="uca" version="5.1"/>
<feature type="tz" version="2008i"/>
<feature type="cldr" version="1.6"/>
<feature type="formatting" total="282" version="???">
af <!-- open:ok syms:40/42#189:ok fmt:ok -->
af_NA <!-- open:ok syms:40/42#189:ok fmt:ok -->
af_ZA <!-- open:ok syms:40/42#189:ok fmt:ok -->
am <!-- open:ok syms:40/42#131:ok fmt:ok -->
am_ET <!-- open:ok syms:40/42#131:ok fmt:ok -->
ar <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_AE <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_BH <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_DZ <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_EG <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_IQ <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_JO <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_KW <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_LB <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_LY <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_MA <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_OM <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_QA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SD <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_SY <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_TN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_YE <!-- open:ok syms:40/42#220:ok fmt:ok -->
as <!-- open:ok syms:40/42#214:ok fmt:ok -->
as_IN <!-- open:ok syms:40/42#214:ok fmt:ok -->
az <!-- open:ok syms:40/42#185:ok fmt:ok -->
az_Cyrl <!-- open:ok syms:40/42#185:ok fmt:ok -->
az_Cyrl_AZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
az_Latn <!-- open:ok syms:40/42#185:ok fmt:ok -->
az_Latn_AZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
be <!-- open:ok syms:40/42#193:ok fmt:ok -->
be_BY <!-- open:ok syms:40/42#193:ok fmt:ok -->
bg <!-- open:ok syms:40/42#196:ok fmt:ok -->
bg_BG <!-- open:ok syms:40/42#196:ok fmt:ok -->
bn <!-- open:ok syms:40/42#256:ok fmt:ok -->
bn_BD <!-- open:ok syms:40/42#256:ok fmt:ok -->
bn_IN <!-- open:ok syms:40/42#256:ok fmt:ok -->
ca <!-- open:ok syms:40/42#196:ok fmt:ok -->
ca_ES <!-- open:ok syms:40/42#196:ok fmt:ok -->
cs <!-- open:ok syms:40/42#212:ok fmt:ok -->
cs_CZ <!-- open:ok syms:40/42#212:ok fmt:ok -->
cy <!-- open:ok syms:40/42#221:ok fmt:ok -->
cy_GB <!-- open:ok syms:40/42#221:ok fmt:ok -->
da <!-- open:ok syms:40/42#183:ok fmt:ok -->
da_DK <!-- open:ok syms:40/42#183:ok fmt:ok -->
de <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_AT <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_BE <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_CH <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_DE <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_LI <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_LU <!-- open:ok syms:40/42#195:ok fmt:ok -->
el <!-- open:ok syms:40/42#218:ok fmt:ok -->
el_CY <!-- open:ok syms:40/42#218:ok fmt:ok -->
el_GR <!-- open:ok syms:40/42#218:ok fmt:ok -->
en <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_AU <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BW <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_CA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_GB <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_HK <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IN <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_JM <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_MH <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_MT <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_NA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_NZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_PH <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_PK <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_SG <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_TT <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US_POSIX <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_VI <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZW <!-- open:ok syms:40/42#185:ok fmt:ok -->
eo <!-- open:ok syms:40/42#177:ok fmt:ok -->
es <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_AR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_BO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CL <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_DO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_EC <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_ES <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_GT <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_HN <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_MX <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_NI <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PA <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PE <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_SV <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_US <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_UY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_VE <!-- open:ok syms:40/42#188:ok fmt:ok -->
et <!-- open:ok syms:40/42#201:ok fmt:ok -->
et_EE <!-- open:ok syms:40/42#201:ok fmt:ok -->
eu <!-- open:ok syms:40/42#197:ok fmt:ok -->
eu_ES <!-- open:ok syms:40/42#197:ok fmt:ok -->
fa <!-- open:ok syms:40/42#214:ok fmt:ok -->
fa_AF <!-- open:ok syms:40/42#197:ok fmt:ok -->
fa_IR <!-- open:ok syms:40/42#214:ok fmt:ok -->
fi <!-- open:ok syms:40/42#270:ok fmt:ok -->
fi_FI <!-- open:ok syms:40/42#270:ok fmt:ok -->
fo <!-- open:ok syms:40/42#200:ok fmt:ok -->
fo_FO <!-- open:ok syms:40/42#200:ok fmt:ok -->
fr <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_BE <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_CA <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_CH <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_FR <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_LU <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_MC <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_SN <!-- open:ok syms:40/42#215:ok fmt:ok -->
ga <!-- open:ok syms:40/42#247:ok fmt:ok -->
ga_IE <!-- open:ok syms:40/42#247:ok fmt:ok -->
gl <!-- open:ok syms:40/42#182:ok fmt:ok -->
gl_ES <!-- open:ok syms:40/42#182:ok fmt:ok -->
gu <!-- open:ok syms:40/42#206:ok fmt:ok -->
gu_IN <!-- open:ok syms:40/42#206:ok fmt:ok -->
gv <!-- open:ok syms:40/42#295:ok fmt:ok -->
gv_GB <!-- open:ok syms:40/42#295:ok fmt:ok -->
ha <!-- open:ok syms:40/42#178:ok fmt:ok -->
ha_Latn <!-- open:ok syms:40/42#178:ok fmt:ok -->
ha_Latn_NG <!-- open:ok syms:40/42#178:ok fmt:ok -->
haw <!-- open:ok syms:40/42#199:ok fmt:ok -->
haw_US <!-- open:ok syms:40/42#199:ok fmt:ok -->
he <!-- open:ok syms:40/42#168:ok fmt:ok -->
he_IL <!-- open:ok syms:40/42#168:ok fmt:ok -->
hi <!-- open:ok syms:40/42#207:ok fmt:ok -->
hi_IN <!-- open:ok syms:40/42#207:ok fmt:ok -->
hr <!-- open:ok syms:40/42#203:ok fmt:ok -->
hr_HR <!-- open:ok syms:40/42#203:ok fmt:ok -->
hu <!-- open:ok syms:40/42#206:ok fmt:ok -->
hu_HU <!-- open:ok syms:40/42#206:ok fmt:ok -->
hy <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM_REVISED <!-- open:ok syms:40/42#204:ok fmt:ok -->
id <!-- open:ok syms:40/42#173:ok fmt:ok -->
id_ID <!-- open:ok syms:40/42#173:ok fmt:ok -->
ii <!-- open:ok syms:40/42#93:ok fmt:ok -->
ii_CN <!-- open:ok syms:40/42#93:ok fmt:ok -->
is <!-- open:ok syms:40/42#223:ok fmt:ok -->
is_IS <!-- open:ok syms:40/42#223:ok fmt:ok -->
it <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_CH <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_IT <!-- open:ok syms:40/42#193:ok fmt:ok -->
ja <!-- open:ok syms:40/42#87:ok fmt:ok -->
ja_JP <!-- open:ok syms:40/42#87:ok fmt:ok -->
ka <!-- open:ok syms:40/42#49:ok fmt:ok -->
ka_GE <!-- open:ok syms:40/42#49:ok fmt:ok -->
kk <!-- open:ok syms:40/42#193:ok fmt:ok -->
kk_Cyrl <!-- open:ok syms:40/42#193:ok fmt:ok -->
kk_Cyrl_KZ <!-- open:ok syms:40/42#193:ok fmt:ok -->
kl <!-- open:ok syms:40/42#237:ok fmt:ok -->
kl_GL <!-- open:ok syms:40/42#237:ok fmt:ok -->
km <!-- open:ok syms:40/42#105:ok fmt:ok -->
km_KH <!-- open:ok syms:40/42#105:ok fmt:ok -->
kn <!-- open:ok syms:40/42#220:ok fmt:ok -->
kn_IN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ko <!-- open:ok syms:40/42#87:ok fmt:ok -->
ko_KR <!-- open:ok syms:40/42#87:ok fmt:ok -->
kok <!-- open:ok syms:40/42#243:ok fmt:ok -->
kok_IN <!-- open:ok syms:40/42#243:ok fmt:ok -->
kw <!-- open:ok syms:40/42#224:ok fmt:ok -->
kw_GB <!-- open:ok syms:40/42#224:ok fmt:ok -->
lt <!-- open:ok syms:40/42#231:ok fmt:ok -->
lt_LT <!-- open:ok syms:40/42#231:ok fmt:ok -->
lv <!-- open:ok syms:40/42#204:ok fmt:ok -->
lv_LV <!-- open:ok syms:40/42#204:ok fmt:ok -->
mk <!-- open:ok syms:40/42#208:ok fmt:ok -->
mk_MK <!-- open:ok syms:40/42#208:ok fmt:ok -->
ml <!-- open:ok syms:40/42#214:ok fmt:ok -->
ml_IN <!-- open:ok syms:40/42#214:ok fmt:ok -->
mr <!-- open:ok syms:40/42#231:ok fmt:ok -->
mr_IN <!-- open:ok syms:40/42#231:ok fmt:ok -->
ms <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_BN <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_MY <!-- open:ok syms:40/42#169:ok fmt:ok -->
mt <!-- open:ok syms:40/42#190:ok fmt:ok -->
mt_MT <!-- open:ok syms:40/42#190:ok fmt:ok -->
nb <!-- open:ok syms:40/42#200:ok fmt:ok -->
nb_NO <!-- open:ok syms:40/42#200:ok fmt:ok -->
ne <!-- open:ok syms:40/42#55:ok fmt:ok -->
ne_IN <!-- open:ok syms:40/42#55:ok fmt:ok -->
ne_NP <!-- open:ok syms:40/42#55:ok fmt:ok -->
nl <!-- open:ok syms:40/42#192:ok fmt:ok -->
nl_BE <!-- open:ok syms:40/42#192:ok fmt:ok -->
nl_NL <!-- open:ok syms:40/42#192:ok fmt:ok -->
nn <!-- open:ok syms:40/42#176:ok fmt:ok -->
nn_NO <!-- open:ok syms:40/42#176:ok fmt:ok -->
om <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_ET <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_KE <!-- open:ok syms:40/42#208:ok fmt:ok -->
or <!-- open:ok syms:40/42#232:ok fmt:ok -->
or_IN <!-- open:ok syms:40/42#232:ok fmt:ok -->
pa <!-- open:ok syms:40/42#196:ok fmt:ok -->
pa_Arab <!-- open:ok syms:40/42#177:ok fmt:ok -->
pa_Arab_PK <!-- open:ok syms:40/42#177:ok fmt:ok -->
pa_Guru <!-- open:ok syms:40/42#196:ok fmt:ok -->
pa_Guru_IN <!-- open:ok syms:40/42#196:ok fmt:ok -->
pl <!-- open:ok syms:40/42#212:ok fmt:ok -->
pl_PL <!-- open:ok syms:40/42#212:ok fmt:ok -->
ps <!-- open:ok syms:40/42#202:ok fmt:ok -->
ps_AF <!-- open:ok syms:40/42#202:ok fmt:ok -->
pt <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_BR <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_PT <!-- open:ok syms:40/42#214:ok fmt:ok -->
ro <!-- open:ok syms:40/42#194:ok fmt:ok -->
ro_RO <!-- open:ok syms:40/42#194:ok fmt:ok -->
ru <!-- open:ok syms:40/42#201:ok fmt:ok -->
ru_RU <!-- open:ok syms:40/42#201:ok fmt:ok -->
ru_UA <!-- open:ok syms:40/42#201:ok fmt:ok -->
si <!-- open:ok syms:40/42#217:ok fmt:ok -->
si_LK <!-- open:ok syms:40/42#217:ok fmt:ok -->
sk <!-- open:ok syms:40/42#178:ok fmt:ok -->
sk_SK <!-- open:ok syms:40/42#178:ok fmt:ok -->
sl <!-- open:ok syms:40/42#189:ok fmt:ok -->
sl_SI <!-- open:ok syms:40/42#189:ok fmt:ok -->
so <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_DJ <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_ET <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_KE <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_SO <!-- open:ok syms:40/42#298:ok fmt:ok -->
sq <!-- open:ok syms:40/42#186:ok fmt:ok -->
sq_AL <!-- open:ok syms:40/42#186:ok fmt:ok -->
sr <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl_BA <!-- open:ok syms:40/42#187:ok fmt:ok -->
sr_Cyrl_ME <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl_RS <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Latn <!-- open:ok syms:40/42#185:ok fmt:ok -->
sr_Latn_BA <!-- open:ok syms:40/42#185:ok fmt:ok -->
sr_Latn_ME <!-- open:ok syms:40/42#185:ok fmt:ok -->
sr_Latn_RS <!-- open:ok syms:40/42#185:ok fmt:ok -->
sv <!-- open:ok syms:40/42#185:ok fmt:ok -->
sv_FI <!-- open:ok syms:40/42#185:ok fmt:ok -->
sv_SE <!-- open:ok syms:40/42#185:ok fmt:ok -->
sw <!-- open:ok syms:40/42#186:ok fmt:ok -->
sw_KE <!-- open:ok syms:40/42#186:ok fmt:ok -->
sw_TZ <!-- open:ok syms:40/42#186:ok fmt:ok -->
ta <!-- open:ok syms:40/42#183:ok fmt:ok -->
ta_IN <!-- open:ok syms:40/42#183:ok fmt:ok -->
te <!-- open:ok syms:40/42#231:ok fmt:ok -->
te_IN <!-- open:ok syms:40/42#231:ok fmt:ok -->
th <!-- open:ok syms:39/41#218:ok fmt:ok -->
th_TH <!-- open:ok syms:39/41#218:ok fmt:ok -->
ti <!-- open:ok syms:40/42#133:ok fmt:ok -->
ti_ER <!-- open:ok syms:40/42#125:ok fmt:ok -->
ti_ET <!-- open:ok syms:40/42#133:ok fmt:ok -->
tr <!-- open:ok syms:40/42#171:ok fmt:ok -->
tr_TR <!-- open:ok syms:40/42#171:ok fmt:ok -->
uk <!-- open:ok syms:40/42#204:ok fmt:ok -->
uk_UA <!-- open:ok syms:40/42#204:ok fmt:ok -->
ur <!-- open:ok syms:40/42#179:ok fmt:ok -->
ur_IN <!-- open:ok syms:40/42#179:ok fmt:ok -->
ur_PK <!-- open:ok syms:40/42#179:ok fmt:ok -->
uz <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Arab <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Arab_AF <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Cyrl <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Cyrl_UZ <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Latn <!-- open:ok syms:40/42#231:ok fmt:ok -->
uz_Latn_UZ <!-- open:ok syms:40/42#231:ok fmt:ok -->
vi <!-- open:ok syms:40/42#267:ok fmt:ok -->
vi_VN <!-- open:ok syms:40/42#267:ok fmt:ok -->
zh <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans_CN <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans_HK <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans_MO <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans_SG <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hant <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hant_HK <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hant_MO <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hant_TW <!-- open:ok syms:40/42#94:ok fmt:ok -->
</feature>
<feature type="collation" total="211" version="???">
ar
ar_AE
ar_BH
ar_DZ
ar_EG
ar_IQ
ar_JO
ar_KW
ar_LB
ar_LY
ar_MA
ar_OM
ar_QA
ar_SA
ar_SD
ar_SY
ar_TN
ar_YE
as
as_IN
be
be_BY
bg
bg_BG
bn
bn_IN
ca
ca_ES
cs
cs_CZ
cy
da
da_DK
de
de_AT
de_BE
de_CH
de_DE
de_LU
el
el_GR
en
en_AU
en_BE
en_BW
en_CA
en_GB
en_HK
en_IE
en_IN
en_MT
en_NZ
en_PH
en_SG
en_US
en_US_POSIX
en_VI
en_ZA
en_ZW
eo
es
es_AR
es_BO
es_CL
es_CO
es_CR
es_DO
es_EC
es_ES
es_GT
es_HN
es_MX
es_NI
es_PA
es_PE
es_PR
es_PY
es_SV
es_US
es_UY
es_VE
et
et_EE
fa
fa_AF
fa_IR
fi
fi_FI
fo
fo_FO
fr
fr_BE
fr_CA
fr_CH
fr_FR
fr_LU
ga
ga_IE
gu
gu_IN
haw
he
he_IL
hi
hi_IN
hr
hr_HR
hu
hu_HU
id
id_ID
is
is_IS
it
it_CH
it_IT
ja
ja_JP
kk
kk_KZ
kl
kl_GL
km
kn
kn_IN
ko
ko_KR
kok
lt
lt_LT
lv
lv_LV
mk
mk_MK
ml
mr
mr_IN
ms
ms_BN
ms_MY
mt
mt_MT
nb
nb_NO
nl
nl_BE
nl_NL
nn
nn_NO
om
om_ET
om_KE
or
pa
pa_Arab
pa_Arab_PK
pa_Guru
pa_Guru_IN
pl
pl_PL
ps
ps_AF
pt
pt_BR
pt_PT
ro
ro_RO
ru
ru_RU
ru_UA
sk
sk_SK
sl
sl_SI
sq
sq_AL
sr
sr_Cyrl
sr_Cyrl_BA
sr_Cyrl_ME
sr_Cyrl_RS
sr_Latn
sr_Latn_BA
sr_Latn_ME
sr_Latn_RS
sv
sv_FI
sv_SE
ta
ta_IN
te
te_IN
th
th_TH
tr
tr_TR
uk
uk_UA
ur
ur_IN
ur_PK
vi
vi_VN
zh
zh_Hans
zh_Hans_CN
zh_Hans_SG
zh_Hant
zh_Hant_HK
zh_Hant_MO
zh_Hant_TW
</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,518 +0,0 @@
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<icuInfo>
<icuProducts>
<icuProduct type="icu4c">
<releases>
<release version="4.1.1">
<capabilities>
<feature type="unicode" version="5.1"/>
<feature type="uca" version="5.1"/>
<feature type="tz" version="2008f"/>
<feature type="cldr" version="1.6"/>
<feature type="formatting" total="282" version="???">
af <!-- open:ok syms:40/42#189:ok fmt:ok -->
af_NA <!-- open:ok syms:40/42#189:ok fmt:ok -->
af_ZA <!-- open:ok syms:40/42#189:ok fmt:ok -->
am <!-- open:ok syms:40/42#131:ok fmt:ok -->
am_ET <!-- open:ok syms:40/42#131:ok fmt:ok -->
ar <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_AE <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_BH <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_DZ <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_EG <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_IQ <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_JO <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_KW <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_LB <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_LY <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_MA <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_OM <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_QA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SD <!-- open:ok syms:40/42#182:ok fmt:ok -->
ar_SY <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_TN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_YE <!-- open:ok syms:40/42#220:ok fmt:ok -->
as <!-- open:ok syms:40/42#214:ok fmt:ok -->
as_IN <!-- open:ok syms:40/42#214:ok fmt:ok -->
az <!-- open:ok syms:40/42#185:ok fmt:ok -->
az_Cyrl <!-- open:ok syms:40/42#185:ok fmt:ok -->
az_Cyrl_AZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
az_Latn <!-- open:ok syms:40/42#185:ok fmt:ok -->
az_Latn_AZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
be <!-- open:ok syms:40/42#193:ok fmt:ok -->
be_BY <!-- open:ok syms:40/42#193:ok fmt:ok -->
bg <!-- open:ok syms:40/42#196:ok fmt:ok -->
bg_BG <!-- open:ok syms:40/42#196:ok fmt:ok -->
bn <!-- open:ok syms:40/42#256:ok fmt:ok -->
bn_BD <!-- open:ok syms:40/42#256:ok fmt:ok -->
bn_IN <!-- open:ok syms:40/42#256:ok fmt:ok -->
ca <!-- open:ok syms:40/42#196:ok fmt:ok -->
ca_ES <!-- open:ok syms:40/42#196:ok fmt:ok -->
cs <!-- open:ok syms:40/42#212:ok fmt:ok -->
cs_CZ <!-- open:ok syms:40/42#212:ok fmt:ok -->
cy <!-- open:ok syms:40/42#221:ok fmt:ok -->
cy_GB <!-- open:ok syms:40/42#221:ok fmt:ok -->
da <!-- open:ok syms:40/42#183:ok fmt:ok -->
da_DK <!-- open:ok syms:40/42#183:ok fmt:ok -->
de <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_AT <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_BE <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_CH <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_DE <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_LI <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_LU <!-- open:ok syms:40/42#195:ok fmt:ok -->
el <!-- open:ok syms:40/42#218:ok fmt:ok -->
el_CY <!-- open:ok syms:40/42#218:ok fmt:ok -->
el_GR <!-- open:ok syms:40/42#218:ok fmt:ok -->
en <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_AU <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BW <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_CA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_GB <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_HK <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IN <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_JM <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_MH <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_MT <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_NA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_NZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_PH <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_PK <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_SG <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_TT <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US_POSIX <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_VI <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZW <!-- open:ok syms:40/42#185:ok fmt:ok -->
eo <!-- open:ok syms:40/42#177:ok fmt:ok -->
es <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_AR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_BO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CL <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_DO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_EC <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_ES <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_GT <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_HN <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_MX <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_NI <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PA <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PE <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_SV <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_US <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_UY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_VE <!-- open:ok syms:40/42#188:ok fmt:ok -->
et <!-- open:ok syms:40/42#201:ok fmt:ok -->
et_EE <!-- open:ok syms:40/42#201:ok fmt:ok -->
eu <!-- open:ok syms:40/42#197:ok fmt:ok -->
eu_ES <!-- open:ok syms:40/42#197:ok fmt:ok -->
fa <!-- open:ok syms:40/42#214:ok fmt:ok -->
fa_AF <!-- open:ok syms:40/42#197:ok fmt:ok -->
fa_IR <!-- open:ok syms:40/42#214:ok fmt:ok -->
fi <!-- open:ok syms:40/42#270:ok fmt:ok -->
fi_FI <!-- open:ok syms:40/42#270:ok fmt:ok -->
fo <!-- open:ok syms:40/42#200:ok fmt:ok -->
fo_FO <!-- open:ok syms:40/42#200:ok fmt:ok -->
fr <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_BE <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_CA <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_CH <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_FR <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_LU <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_MC <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_SN <!-- open:ok syms:40/42#215:ok fmt:ok -->
ga <!-- open:ok syms:40/42#247:ok fmt:ok -->
ga_IE <!-- open:ok syms:40/42#247:ok fmt:ok -->
gl <!-- open:ok syms:40/42#182:ok fmt:ok -->
gl_ES <!-- open:ok syms:40/42#182:ok fmt:ok -->
gu <!-- open:ok syms:40/42#206:ok fmt:ok -->
gu_IN <!-- open:ok syms:40/42#206:ok fmt:ok -->
gv <!-- open:ok syms:40/42#295:ok fmt:ok -->
gv_GB <!-- open:ok syms:40/42#295:ok fmt:ok -->
ha <!-- open:ok syms:40/42#178:ok fmt:ok -->
ha_Latn <!-- open:ok syms:40/42#178:ok fmt:ok -->
ha_Latn_NG <!-- open:ok syms:40/42#178:ok fmt:ok -->
haw <!-- open:ok syms:40/42#199:ok fmt:ok -->
haw_US <!-- open:ok syms:40/42#199:ok fmt:ok -->
he <!-- open:ok syms:40/42#168:ok fmt:ok -->
he_IL <!-- open:ok syms:40/42#168:ok fmt:ok -->
hi <!-- open:ok syms:40/42#207:ok fmt:ok -->
hi_IN <!-- open:ok syms:40/42#207:ok fmt:ok -->
hr <!-- open:ok syms:40/42#203:ok fmt:ok -->
hr_HR <!-- open:ok syms:40/42#203:ok fmt:ok -->
hu <!-- open:ok syms:40/42#206:ok fmt:ok -->
hu_HU <!-- open:ok syms:40/42#206:ok fmt:ok -->
hy <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM_REVISED <!-- open:ok syms:40/42#204:ok fmt:ok -->
id <!-- open:ok syms:40/42#173:ok fmt:ok -->
id_ID <!-- open:ok syms:40/42#173:ok fmt:ok -->
ii <!-- open:ok syms:40/42#93:ok fmt:ok -->
ii_CN <!-- open:ok syms:40/42#93:ok fmt:ok -->
is <!-- open:ok syms:40/42#223:ok fmt:ok -->
is_IS <!-- open:ok syms:40/42#223:ok fmt:ok -->
it <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_CH <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_IT <!-- open:ok syms:40/42#193:ok fmt:ok -->
ja <!-- open:ok syms:40/42#87:ok fmt:ok -->
ja_JP <!-- open:ok syms:40/42#87:ok fmt:ok -->
ka <!-- open:ok syms:40/42#49:ok fmt:ok -->
ka_GE <!-- open:ok syms:40/42#49:ok fmt:ok -->
kk <!-- open:ok syms:40/42#193:ok fmt:ok -->
kk_Cyrl <!-- open:ok syms:40/42#193:ok fmt:ok -->
kk_Cyrl_KZ <!-- open:ok syms:40/42#193:ok fmt:ok -->
kl <!-- open:ok syms:40/42#237:ok fmt:ok -->
kl_GL <!-- open:ok syms:40/42#237:ok fmt:ok -->
km <!-- open:ok syms:40/42#105:ok fmt:ok -->
km_KH <!-- open:ok syms:40/42#105:ok fmt:ok -->
kn <!-- open:ok syms:40/42#220:ok fmt:ok -->
kn_IN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ko <!-- open:ok syms:40/42#87:ok fmt:ok -->
ko_KR <!-- open:ok syms:40/42#87:ok fmt:ok -->
kok <!-- open:ok syms:40/42#243:ok fmt:ok -->
kok_IN <!-- open:ok syms:40/42#243:ok fmt:ok -->
kw <!-- open:ok syms:40/42#224:ok fmt:ok -->
kw_GB <!-- open:ok syms:40/42#224:ok fmt:ok -->
lt <!-- open:ok syms:40/42#231:ok fmt:ok -->
lt_LT <!-- open:ok syms:40/42#231:ok fmt:ok -->
lv <!-- open:ok syms:40/42#204:ok fmt:ok -->
lv_LV <!-- open:ok syms:40/42#204:ok fmt:ok -->
mk <!-- open:ok syms:40/42#208:ok fmt:ok -->
mk_MK <!-- open:ok syms:40/42#208:ok fmt:ok -->
ml <!-- open:ok syms:40/42#214:ok fmt:ok -->
ml_IN <!-- open:ok syms:40/42#214:ok fmt:ok -->
mr <!-- open:ok syms:40/42#231:ok fmt:ok -->
mr_IN <!-- open:ok syms:40/42#231:ok fmt:ok -->
ms <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_BN <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_MY <!-- open:ok syms:40/42#169:ok fmt:ok -->
mt <!-- open:ok syms:40/42#190:ok fmt:ok -->
mt_MT <!-- open:ok syms:40/42#190:ok fmt:ok -->
nb <!-- open:ok syms:40/42#200:ok fmt:ok -->
nb_NO <!-- open:ok syms:40/42#200:ok fmt:ok -->
ne <!-- open:ok syms:40/42#55:ok fmt:ok -->
ne_IN <!-- open:ok syms:40/42#55:ok fmt:ok -->
ne_NP <!-- open:ok syms:40/42#55:ok fmt:ok -->
nl <!-- open:ok syms:40/42#192:ok fmt:ok -->
nl_BE <!-- open:ok syms:40/42#192:ok fmt:ok -->
nl_NL <!-- open:ok syms:40/42#192:ok fmt:ok -->
nn <!-- open:ok syms:40/42#176:ok fmt:ok -->
nn_NO <!-- open:ok syms:40/42#176:ok fmt:ok -->
om <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_ET <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_KE <!-- open:ok syms:40/42#208:ok fmt:ok -->
or <!-- open:ok syms:40/42#232:ok fmt:ok -->
or_IN <!-- open:ok syms:40/42#232:ok fmt:ok -->
pa <!-- open:ok syms:40/42#196:ok fmt:ok -->
pa_Arab <!-- open:ok syms:40/42#177:ok fmt:ok -->
pa_Arab_PK <!-- open:ok syms:40/42#177:ok fmt:ok -->
pa_Guru <!-- open:ok syms:40/42#196:ok fmt:ok -->
pa_Guru_IN <!-- open:ok syms:40/42#196:ok fmt:ok -->
pl <!-- open:ok syms:40/42#212:ok fmt:ok -->
pl_PL <!-- open:ok syms:40/42#212:ok fmt:ok -->
ps <!-- open:ok syms:40/42#202:ok fmt:ok -->
ps_AF <!-- open:ok syms:40/42#202:ok fmt:ok -->
pt <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_BR <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_PT <!-- open:ok syms:40/42#214:ok fmt:ok -->
ro <!-- open:ok syms:40/42#194:ok fmt:ok -->
ro_RO <!-- open:ok syms:40/42#194:ok fmt:ok -->
ru <!-- open:ok syms:40/42#201:ok fmt:ok -->
ru_RU <!-- open:ok syms:40/42#201:ok fmt:ok -->
ru_UA <!-- open:ok syms:40/42#201:ok fmt:ok -->
si <!-- open:ok syms:40/42#217:ok fmt:ok -->
si_LK <!-- open:ok syms:40/42#217:ok fmt:ok -->
sk <!-- open:ok syms:40/42#178:ok fmt:ok -->
sk_SK <!-- open:ok syms:40/42#178:ok fmt:ok -->
sl <!-- open:ok syms:40/42#189:ok fmt:ok -->
sl_SI <!-- open:ok syms:40/42#189:ok fmt:ok -->
so <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_DJ <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_ET <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_KE <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_SO <!-- open:ok syms:40/42#298:ok fmt:ok -->
sq <!-- open:ok syms:40/42#186:ok fmt:ok -->
sq_AL <!-- open:ok syms:40/42#186:ok fmt:ok -->
sr <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl_BA <!-- open:ok syms:40/42#187:ok fmt:ok -->
sr_Cyrl_ME <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl_RS <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Latn <!-- open:ok syms:40/42#185:ok fmt:ok -->
sr_Latn_BA <!-- open:ok syms:40/42#185:ok fmt:ok -->
sr_Latn_ME <!-- open:ok syms:40/42#185:ok fmt:ok -->
sr_Latn_RS <!-- open:ok syms:40/42#185:ok fmt:ok -->
sv <!-- open:ok syms:40/42#185:ok fmt:ok -->
sv_FI <!-- open:ok syms:40/42#185:ok fmt:ok -->
sv_SE <!-- open:ok syms:40/42#185:ok fmt:ok -->
sw <!-- open:ok syms:40/42#186:ok fmt:ok -->
sw_KE <!-- open:ok syms:40/42#186:ok fmt:ok -->
sw_TZ <!-- open:ok syms:40/42#186:ok fmt:ok -->
ta <!-- open:ok syms:40/42#183:ok fmt:ok -->
ta_IN <!-- open:ok syms:40/42#183:ok fmt:ok -->
te <!-- open:ok syms:40/42#231:ok fmt:ok -->
te_IN <!-- open:ok syms:40/42#231:ok fmt:ok -->
th <!-- open:ok syms:39/41#218:ok fmt:ok -->
th_TH <!-- open:ok syms:39/41#218:ok fmt:ok -->
ti <!-- open:ok syms:40/42#133:ok fmt:ok -->
ti_ER <!-- open:ok syms:40/42#125:ok fmt:ok -->
ti_ET <!-- open:ok syms:40/42#133:ok fmt:ok -->
tr <!-- open:ok syms:40/42#171:ok fmt:ok -->
tr_TR <!-- open:ok syms:40/42#171:ok fmt:ok -->
uk <!-- open:ok syms:40/42#204:ok fmt:ok -->
uk_UA <!-- open:ok syms:40/42#204:ok fmt:ok -->
ur <!-- open:ok syms:40/42#179:ok fmt:ok -->
ur_IN <!-- open:ok syms:40/42#179:ok fmt:ok -->
ur_PK <!-- open:ok syms:40/42#179:ok fmt:ok -->
uz <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Arab <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Arab_AF <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Cyrl <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Cyrl_UZ <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Latn <!-- open:ok syms:40/42#231:ok fmt:ok -->
uz_Latn_UZ <!-- open:ok syms:40/42#231:ok fmt:ok -->
vi <!-- open:ok syms:40/42#267:ok fmt:ok -->
vi_VN <!-- open:ok syms:40/42#267:ok fmt:ok -->
zh <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans_CN <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans_HK <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans_MO <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans_SG <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hant <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hant_HK <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hant_MO <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hant_TW <!-- open:ok syms:40/42#94:ok fmt:ok -->
</feature>
<feature type="collation" total="211" version="???">
ar
ar_AE
ar_BH
ar_DZ
ar_EG
ar_IQ
ar_JO
ar_KW
ar_LB
ar_LY
ar_MA
ar_OM
ar_QA
ar_SA
ar_SD
ar_SY
ar_TN
ar_YE
as
as_IN
be
be_BY
bg
bg_BG
bn
bn_IN
ca
ca_ES
cs
cs_CZ
cy
da
da_DK
de
de_AT
de_BE
de_CH
de_DE
de_LU
el
el_GR
en
en_AU
en_BE
en_BW
en_CA
en_GB
en_HK
en_IE
en_IN
en_MT
en_NZ
en_PH
en_SG
en_US
en_US_POSIX
en_VI
en_ZA
en_ZW
eo
es
es_AR
es_BO
es_CL
es_CO
es_CR
es_DO
es_EC
es_ES
es_GT
es_HN
es_MX
es_NI
es_PA
es_PE
es_PR
es_PY
es_SV
es_US
es_UY
es_VE
et
et_EE
fa
fa_AF
fa_IR
fi
fi_FI
fo
fo_FO
fr
fr_BE
fr_CA
fr_CH
fr_FR
fr_LU
ga
ga_IE
gu
gu_IN
haw
he
he_IL
hi
hi_IN
hr
hr_HR
hu
hu_HU
id
id_ID
is
is_IS
it
it_CH
it_IT
ja
ja_JP
kk
kk_KZ
kl
kl_GL
km
kn
kn_IN
ko
ko_KR
kok
lt
lt_LT
lv
lv_LV
mk
mk_MK
ml
mr
mr_IN
ms
ms_BN
ms_MY
mt
mt_MT
nb
nb_NO
nl
nl_BE
nl_NL
nn
nn_NO
om
om_ET
om_KE
or
pa
pa_Arab
pa_Arab_PK
pa_Guru
pa_Guru_IN
pl
pl_PL
ps
ps_AF
pt
pt_BR
pt_PT
ro
ro_RO
ru
ru_RU
ru_UA
sk
sk_SK
sl
sl_SI
sq
sq_AL
sr
sr_Cyrl
sr_Cyrl_BA
sr_Cyrl_ME
sr_Cyrl_RS
sr_Latn
sr_Latn_BA
sr_Latn_ME
sr_Latn_RS
sv
sv_FI
sv_SE
ta
ta_IN
te
te_IN
th
th_TH
tr
tr_TR
uk
uk_UA
ur
ur_IN
ur_PK
vi
vi_VN
zh
zh_Hans
zh_Hans_CN
zh_Hans_SG
zh_Hant
zh_Hant_HK
zh_Hant_MO
zh_Hant_TW
</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,536 +0,0 @@
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<icuInfo>
<icuProducts>
<icuProduct type="icu4c">
<releases>
<release version="4.2">
<capabilities>
<feature type="unicode" version="5.1"/>
<feature type="uca" version="5.1"/>
<feature type="tz" version="2009g"/>
<feature type="cldr" version="1.7"/>
<feature type="formatting" total="292" version="???">
af <!-- open:ok syms:40/42#189:ok fmt:ok -->
af_NA <!-- open:ok syms:40/42#189:ok fmt:ok -->
af_ZA <!-- open:ok syms:40/42#189:ok fmt:ok -->
am <!-- open:ok syms:40/42#131:ok fmt:ok -->
am_ET <!-- open:ok syms:40/42#131:ok fmt:ok -->
ar <!-- open:ok syms:40/42#206:ok fmt:ok -->
ar_AE <!-- open:ok syms:40/42#206:ok fmt:ok -->
ar_BH <!-- open:ok syms:40/42#206:ok fmt:ok -->
ar_DZ <!-- open:ok syms:40/42#206:ok fmt:ok -->
ar_EG <!-- open:ok syms:40/42#206:ok fmt:ok -->
ar_IQ <!-- open:ok syms:40/42#206:ok fmt:ok -->
ar_JO <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_KW <!-- open:ok syms:40/42#206:ok fmt:ok -->
ar_LB <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_LY <!-- open:ok syms:40/42#206:ok fmt:ok -->
ar_MA <!-- open:ok syms:40/42#206:ok fmt:ok -->
ar_OM <!-- open:ok syms:40/42#206:ok fmt:ok -->
ar_QA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SD <!-- open:ok syms:40/42#206:ok fmt:ok -->
ar_SY <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_TN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_YE <!-- open:ok syms:40/42#220:ok fmt:ok -->
as <!-- open:ok syms:40/42#214:ok fmt:ok -->
as_IN <!-- open:ok syms:40/42#214:ok fmt:ok -->
az <!-- open:ok syms:40/42#188:ok fmt:ok -->
az_Cyrl <!-- open:ok syms:40/42#188:ok fmt:ok -->
az_Cyrl_AZ <!-- open:ok syms:40/42#188:ok fmt:ok -->
az_Latn <!-- open:ok syms:40/42#188:ok fmt:ok -->
az_Latn_AZ <!-- open:ok syms:40/42#188:ok fmt:ok -->
be <!-- open:ok syms:40/42#193:ok fmt:ok -->
be_BY <!-- open:ok syms:40/42#193:ok fmt:ok -->
bg <!-- open:ok syms:40/42#196:ok fmt:ok -->
bg_BG <!-- open:ok syms:40/42#196:ok fmt:ok -->
bn <!-- open:ok syms:40/42#256:ok fmt:ok -->
bn_BD <!-- open:ok syms:40/42#256:ok fmt:ok -->
bn_IN <!-- open:ok syms:40/42#256:ok fmt:ok -->
bo <!-- open:ok syms:40/42#330:ok fmt:ok -->
bo_CN <!-- open:ok syms:40/42#330:ok fmt:ok -->
bo_IN <!-- open:ok syms:40/42#330:ok fmt:ok -->
ca <!-- open:ok syms:40/42#196:ok fmt:ok -->
ca_ES <!-- open:ok syms:40/42#196:ok fmt:ok -->
cs <!-- open:ok syms:40/42#212:ok fmt:ok -->
cs_CZ <!-- open:ok syms:40/42#212:ok fmt:ok -->
cy <!-- open:ok syms:40/42#221:ok fmt:ok -->
cy_GB <!-- open:ok syms:40/42#221:ok fmt:ok -->
da <!-- open:ok syms:40/42#194:ok fmt:ok -->
da_DK <!-- open:ok syms:40/42#194:ok fmt:ok -->
de <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_AT <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_BE <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_CH <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_DE <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_LI <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_LU <!-- open:ok syms:40/42#195:ok fmt:ok -->
el <!-- open:ok syms:40/42#218:ok fmt:ok -->
el_CY <!-- open:ok syms:40/42#218:ok fmt:ok -->
el_GR <!-- open:ok syms:40/42#218:ok fmt:ok -->
en <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_AU <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BW <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_CA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_GB <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_HK <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IN <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_JM <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_MH <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_MT <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_NA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_NZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_PH <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_PK <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_SG <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_TT <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US_POSIX <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_VI <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZW <!-- open:ok syms:40/42#185:ok fmt:ok -->
eo <!-- open:ok syms:40/42#177:ok fmt:ok -->
es <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_AR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_BO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CL <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_DO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_EC <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_ES <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_GT <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_HN <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_MX <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_NI <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PA <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PE <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_SV <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_US <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_UY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_VE <!-- open:ok syms:40/42#188:ok fmt:ok -->
et <!-- open:ok syms:40/42#201:ok fmt:ok -->
et_EE <!-- open:ok syms:40/42#201:ok fmt:ok -->
eu <!-- open:ok syms:40/42#197:ok fmt:ok -->
eu_ES <!-- open:ok syms:40/42#197:ok fmt:ok -->
fa <!-- open:ok syms:40/42#214:ok fmt:ok -->
fa_AF <!-- open:ok syms:40/42#197:ok fmt:ok -->
fa_IR <!-- open:ok syms:40/42#214:ok fmt:ok -->
fi <!-- open:ok syms:40/42#330:ok fmt:ok -->
fi_FI <!-- open:ok syms:40/42#330:ok fmt:ok -->
fo <!-- open:ok syms:40/42#200:ok fmt:ok -->
fo_FO <!-- open:ok syms:40/42#200:ok fmt:ok -->
fr <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_BE <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_CA <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_CH <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_FR <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_LU <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_MC <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_SN <!-- open:ok syms:40/42#215:ok fmt:ok -->
ga <!-- open:ok syms:40/42#247:ok fmt:ok -->
ga_IE <!-- open:ok syms:40/42#247:ok fmt:ok -->
gl <!-- open:ok syms:40/42#182:ok fmt:ok -->
gl_ES <!-- open:ok syms:40/42#182:ok fmt:ok -->
gsw <!-- open:ok syms:40/42#201:ok fmt:ok -->
gsw_CH <!-- open:ok syms:40/42#201:ok fmt:ok -->
gu <!-- open:ok syms:40/42#206:ok fmt:ok -->
gu_IN <!-- open:ok syms:40/42#206:ok fmt:ok -->
gv <!-- open:ok syms:40/42#295:ok fmt:ok -->
gv_GB <!-- open:ok syms:40/42#295:ok fmt:ok -->
ha <!-- open:ok syms:40/42#178:ok fmt:ok -->
ha_Latn <!-- open:ok syms:40/42#178:ok fmt:ok -->
ha_Latn_GH <!-- open:ok syms:40/42#178:ok fmt:ok -->
ha_Latn_NE <!-- open:ok syms:40/42#178:ok fmt:ok -->
ha_Latn_NG <!-- open:ok syms:40/42#178:ok fmt:ok -->
haw <!-- open:ok syms:40/42#199:ok fmt:ok -->
haw_US <!-- open:ok syms:40/42#199:ok fmt:ok -->
he <!-- open:ok syms:40/42#204:ok fmt:ok -->
he_IL <!-- open:ok syms:40/42#204:ok fmt:ok -->
hi <!-- open:ok syms:40/42#207:ok fmt:ok -->
hi_IN <!-- open:ok syms:40/42#207:ok fmt:ok -->
hr <!-- open:ok syms:40/42#203:ok fmt:ok -->
hr_HR <!-- open:ok syms:40/42#203:ok fmt:ok -->
hu <!-- open:ok syms:40/42#206:ok fmt:ok -->
hu_HU <!-- open:ok syms:40/42#206:ok fmt:ok -->
hy <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM_REVISED <!-- open:ok syms:40/42#204:ok fmt:ok -->
id <!-- open:ok syms:40/42#173:ok fmt:ok -->
id_ID <!-- open:ok syms:40/42#173:ok fmt:ok -->
ii <!-- open:ok syms:40/42#93:ok fmt:ok -->
ii_CN <!-- open:ok syms:40/42#93:ok fmt:ok -->
is <!-- open:ok syms:40/42#223:ok fmt:ok -->
is_IS <!-- open:ok syms:40/42#223:ok fmt:ok -->
it <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_CH <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_IT <!-- open:ok syms:40/42#193:ok fmt:ok -->
ja <!-- open:ok syms:40/42#87:ok fmt:ok -->
ja_JP <!-- open:ok syms:40/42#87:ok fmt:ok -->
ka <!-- open:ok syms:40/42#49:ok fmt:ok -->
ka_GE <!-- open:ok syms:40/42#49:ok fmt:ok -->
kk <!-- open:ok syms:40/42#193:ok fmt:ok -->
kk_Cyrl <!-- open:ok syms:40/42#193:ok fmt:ok -->
kk_Cyrl_KZ <!-- open:ok syms:40/42#193:ok fmt:ok -->
kl <!-- open:ok syms:40/42#237:ok fmt:ok -->
kl_GL <!-- open:ok syms:40/42#237:ok fmt:ok -->
km <!-- open:ok syms:40/42#105:ok fmt:ok -->
km_KH <!-- open:ok syms:40/42#105:ok fmt:ok -->
kn <!-- open:ok syms:40/42#220:ok fmt:ok -->
kn_IN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ko <!-- open:ok syms:40/42#87:ok fmt:ok -->
ko_KR <!-- open:ok syms:40/42#87:ok fmt:ok -->
kok <!-- open:ok syms:40/42#243:ok fmt:ok -->
kok_IN <!-- open:ok syms:40/42#243:ok fmt:ok -->
kw <!-- open:ok syms:40/42#224:ok fmt:ok -->
kw_GB <!-- open:ok syms:40/42#224:ok fmt:ok -->
lt <!-- open:ok syms:40/42#231:ok fmt:ok -->
lt_LT <!-- open:ok syms:40/42#231:ok fmt:ok -->
lv <!-- open:ok syms:40/42#231:ok fmt:ok -->
lv_LV <!-- open:ok syms:40/42#231:ok fmt:ok -->
mk <!-- open:ok syms:40/42#208:ok fmt:ok -->
mk_MK <!-- open:ok syms:40/42#208:ok fmt:ok -->
ml <!-- open:ok syms:40/42#262:ok fmt:ok -->
ml_IN <!-- open:ok syms:40/42#262:ok fmt:ok -->
mr <!-- open:ok syms:40/42#230:ok fmt:ok -->
mr_IN <!-- open:ok syms:40/42#230:ok fmt:ok -->
ms <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_BN <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_MY <!-- open:ok syms:40/42#169:ok fmt:ok -->
mt <!-- open:ok syms:40/42#191:ok fmt:ok -->
mt_MT <!-- open:ok syms:40/42#191:ok fmt:ok -->
nb <!-- open:ok syms:40/42#200:ok fmt:ok -->
nb_NO <!-- open:ok syms:40/42#200:ok fmt:ok -->
ne <!-- open:ok syms:40/42#55:ok fmt:ok -->
ne_IN <!-- open:ok syms:40/42#55:ok fmt:ok -->
ne_NP <!-- open:ok syms:40/42#55:ok fmt:ok -->
nl <!-- open:ok syms:40/42#203:ok fmt:ok -->
nl_BE <!-- open:ok syms:40/42#203:ok fmt:ok -->
nl_NL <!-- open:ok syms:40/42#203:ok fmt:ok -->
nn <!-- open:ok syms:40/42#182:ok fmt:ok -->
nn_NO <!-- open:ok syms:40/42#182:ok fmt:ok -->
om <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_ET <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_KE <!-- open:ok syms:40/42#208:ok fmt:ok -->
or <!-- open:ok syms:40/42#232:ok fmt:ok -->
or_IN <!-- open:ok syms:40/42#232:ok fmt:ok -->
pa <!-- open:ok syms:40/42#196:ok fmt:ok -->
pa_Arab <!-- open:ok syms:40/42#176:ok fmt:ok -->
pa_Arab_PK <!-- open:ok syms:40/42#176:ok fmt:ok -->
pa_Guru <!-- open:ok syms:40/42#196:ok fmt:ok -->
pa_Guru_IN <!-- open:ok syms:40/42#196:ok fmt:ok -->
pl <!-- open:ok syms:40/42#212:ok fmt:ok -->
pl_PL <!-- open:ok syms:40/42#212:ok fmt:ok -->
ps <!-- open:ok syms:40/42#202:ok fmt:ok -->
ps_AF <!-- open:ok syms:40/42#202:ok fmt:ok -->
pt <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_BR <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_PT <!-- open:ok syms:40/42#214:ok fmt:ok -->
ro <!-- open:ok syms:40/42#199:ok fmt:ok -->
ro_MD <!-- open:ok syms:40/42#199:ok fmt:ok -->
ro_RO <!-- open:ok syms:40/42#199:ok fmt:ok -->
ru <!-- open:ok syms:40/42#201:ok fmt:ok -->
ru_RU <!-- open:ok syms:40/42#201:ok fmt:ok -->
ru_UA <!-- open:ok syms:40/42#201:ok fmt:ok -->
si <!-- open:ok syms:40/42#217:ok fmt:ok -->
si_LK <!-- open:ok syms:40/42#217:ok fmt:ok -->
sk <!-- open:ok syms:40/42#185:ok fmt:ok -->
sk_SK <!-- open:ok syms:40/42#185:ok fmt:ok -->
sl <!-- open:ok syms:40/42#192:ok fmt:ok -->
sl_SI <!-- open:ok syms:40/42#192:ok fmt:ok -->
so <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_DJ <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_ET <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_KE <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_SO <!-- open:ok syms:40/42#298:ok fmt:ok -->
sq <!-- open:ok syms:40/42#186:ok fmt:ok -->
sq_AL <!-- open:ok syms:40/42#186:ok fmt:ok -->
sr <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl_BA <!-- open:ok syms:40/42#187:ok fmt:ok -->
sr_Cyrl_ME <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl_RS <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Latn <!-- open:ok syms:40/42#185:ok fmt:ok -->
sr_Latn_BA <!-- open:ok syms:40/42#185:ok fmt:ok -->
sr_Latn_ME <!-- open:ok syms:40/42#185:ok fmt:ok -->
sr_Latn_RS <!-- open:ok syms:40/42#185:ok fmt:ok -->
sv <!-- open:ok syms:40/42#185:ok fmt:ok -->
sv_FI <!-- open:ok syms:40/42#185:ok fmt:ok -->
sv_SE <!-- open:ok syms:40/42#185:ok fmt:ok -->
sw <!-- open:ok syms:40/42#186:ok fmt:ok -->
sw_KE <!-- open:ok syms:40/42#186:ok fmt:ok -->
sw_TZ <!-- open:ok syms:40/42#186:ok fmt:ok -->
ta <!-- open:ok syms:40/42#183:ok fmt:ok -->
ta_IN <!-- open:ok syms:40/42#183:ok fmt:ok -->
te <!-- open:ok syms:40/42#231:ok fmt:ok -->
te_IN <!-- open:ok syms:40/42#231:ok fmt:ok -->
th <!-- open:ok syms:39/41#218:ok fmt:ok -->
th_TH <!-- open:ok syms:39/41#218:ok fmt:ok -->
ti <!-- open:ok syms:40/42#133:ok fmt:ok -->
ti_ER <!-- open:ok syms:40/42#125:ok fmt:ok -->
ti_ET <!-- open:ok syms:40/42#133:ok fmt:ok -->
tr <!-- open:ok syms:40/42#171:ok fmt:ok -->
tr_TR <!-- open:ok syms:40/42#171:ok fmt:ok -->
uk <!-- open:ok syms:40/42#204:ok fmt:ok -->
uk_UA <!-- open:ok syms:40/42#204:ok fmt:ok -->
ur <!-- open:ok syms:40/42#179:ok fmt:ok -->
ur_IN <!-- open:ok syms:40/42#179:ok fmt:ok -->
ur_PK <!-- open:ok syms:40/42#179:ok fmt:ok -->
uz <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Arab <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Arab_AF <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Cyrl <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Cyrl_UZ <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Latn <!-- open:ok syms:40/42#141:ok fmt:ok -->
uz_Latn_UZ <!-- open:ok syms:40/42#141:ok fmt:ok -->
vi <!-- open:ok syms:40/42#267:ok fmt:ok -->
vi_VN <!-- open:ok syms:40/42#267:ok fmt:ok -->
zh <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans_CN <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans_HK <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans_MO <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans_SG <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hant <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hant_HK <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hant_MO <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hant_TW <!-- open:ok syms:40/42#94:ok fmt:ok -->
zu <!-- open:ok syms:40/42#201:ok fmt:ok -->
zu_ZA <!-- open:ok syms:40/42#201:ok fmt:ok -->
</feature>
<feature type="collation" total="219" version="???">
af
af_NA
af_ZA
ar
ar_AE
ar_BH
ar_DZ
ar_EG
ar_IQ
ar_JO
ar_KW
ar_LB
ar_LY
ar_MA
ar_OM
ar_QA
ar_SA
ar_SD
ar_SY
ar_TN
ar_YE
as
as_IN
az
az_Latn
az_Latn_AZ
be
be_BY
bg
bg_BG
bn
bn_IN
ca
ca_ES
cs
cs_CZ
cy
da
da_DK
de
de_AT
de_BE
de_CH
de_DE
de_LU
el
el_GR
en
en_AU
en_BE
en_BW
en_CA
en_GB
en_HK
en_IE
en_IN
en_MT
en_NZ
en_PH
en_SG
en_US
en_US_POSIX
en_VI
en_ZA
en_ZW
eo
es
es_AR
es_BO
es_CL
es_CO
es_CR
es_DO
es_EC
es_ES
es_GT
es_HN
es_MX
es_NI
es_PA
es_PE
es_PR
es_PY
es_SV
es_US
es_UY
es_VE
et
et_EE
fa
fa_AF
fa_IR
fi
fi_FI
fo
fo_FO
fr
fr_BE
fr_CA
fr_CH
fr_FR
fr_LU
ga
ga_IE
gu
gu_IN
haw
he
he_IL
hi
hi_IN
hr
hr_HR
hu
hu_HU
id
id_ID
is
is_IS
it
it_CH
it_IT
ja
ja_JP
kk
kk_KZ
kl
kl_GL
km
kn
kn_IN
ko
ko_KR
kok
lt
lt_LT
lv
lv_LV
mk
mk_MK
ml
mr
mr_IN
ms
ms_BN
ms_MY
mt
mt_MT
nb
nb_NO
nl
nl_BE
nl_NL
nn
nn_NO
om
om_ET
om_KE
or
pa
pa_Arab
pa_Arab_PK
pa_Guru
pa_Guru_IN
pl
pl_PL
ps
ps_AF
pt
pt_BR
pt_PT
ro
ro_RO
ru
ru_RU
ru_UA
si
si_LK
sk
sk_SK
sl
sl_SI
sq
sq_AL
sr
sr_Cyrl
sr_Cyrl_BA
sr_Cyrl_ME
sr_Cyrl_RS
sr_Latn
sr_Latn_BA
sr_Latn_ME
sr_Latn_RS
sv
sv_FI
sv_SE
ta
ta_IN
te
te_IN
th
th_TH
tr
tr_TR
uk
uk_UA
ur
ur_IN
ur_PK
vi
vi_VN
zh
zh_Hans
zh_Hans_CN
zh_Hans_SG
zh_Hant
zh_Hant_HK
zh_Hant_MO
zh_Hant_TW
</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

View file

@ -1,536 +0,0 @@
<!DOCTYPE icuInfo SYSTEM "http://icu-project.org/dtd/icumeta.dtd">
<!--
* © 2017 and later: Unicode, Inc. and others.
* License & terms of use: http://www.unicode.org/copyright.html
-->
<icuInfo>
<icuProducts>
<icuProduct type="icu4c">
<releases>
<release version="4.2.0.1">
<capabilities>
<feature type="unicode" version="5.1"/>
<feature type="uca" version="5.1"/>
<feature type="tz" version="2009g"/>
<feature type="cldr" version="1.7"/>
<feature type="formatting" total="292" version="???">
af <!-- open:ok syms:40/42#189:ok fmt:ok -->
af_NA <!-- open:ok syms:40/42#189:ok fmt:ok -->
af_ZA <!-- open:ok syms:40/42#189:ok fmt:ok -->
am <!-- open:ok syms:40/42#131:ok fmt:ok -->
am_ET <!-- open:ok syms:40/42#131:ok fmt:ok -->
ar <!-- open:ok syms:40/42#206:ok fmt:ok -->
ar_AE <!-- open:ok syms:40/42#206:ok fmt:ok -->
ar_BH <!-- open:ok syms:40/42#206:ok fmt:ok -->
ar_DZ <!-- open:ok syms:40/42#206:ok fmt:ok -->
ar_EG <!-- open:ok syms:40/42#206:ok fmt:ok -->
ar_IQ <!-- open:ok syms:40/42#206:ok fmt:ok -->
ar_JO <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_KW <!-- open:ok syms:40/42#206:ok fmt:ok -->
ar_LB <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_LY <!-- open:ok syms:40/42#206:ok fmt:ok -->
ar_MA <!-- open:ok syms:40/42#206:ok fmt:ok -->
ar_OM <!-- open:ok syms:40/42#206:ok fmt:ok -->
ar_QA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SA <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_SD <!-- open:ok syms:40/42#206:ok fmt:ok -->
ar_SY <!-- open:ok syms:40/42#254:ok fmt:ok -->
ar_TN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ar_YE <!-- open:ok syms:40/42#220:ok fmt:ok -->
as <!-- open:ok syms:40/42#214:ok fmt:ok -->
as_IN <!-- open:ok syms:40/42#214:ok fmt:ok -->
az <!-- open:ok syms:40/42#188:ok fmt:ok -->
az_Cyrl <!-- open:ok syms:40/42#188:ok fmt:ok -->
az_Cyrl_AZ <!-- open:ok syms:40/42#188:ok fmt:ok -->
az_Latn <!-- open:ok syms:40/42#188:ok fmt:ok -->
az_Latn_AZ <!-- open:ok syms:40/42#188:ok fmt:ok -->
be <!-- open:ok syms:40/42#193:ok fmt:ok -->
be_BY <!-- open:ok syms:40/42#193:ok fmt:ok -->
bg <!-- open:ok syms:40/42#196:ok fmt:ok -->
bg_BG <!-- open:ok syms:40/42#196:ok fmt:ok -->
bn <!-- open:ok syms:40/42#256:ok fmt:ok -->
bn_BD <!-- open:ok syms:40/42#256:ok fmt:ok -->
bn_IN <!-- open:ok syms:40/42#256:ok fmt:ok -->
bo <!-- open:ok syms:40/42#330:ok fmt:ok -->
bo_CN <!-- open:ok syms:40/42#330:ok fmt:ok -->
bo_IN <!-- open:ok syms:40/42#330:ok fmt:ok -->
ca <!-- open:ok syms:40/42#196:ok fmt:ok -->
ca_ES <!-- open:ok syms:40/42#196:ok fmt:ok -->
cs <!-- open:ok syms:40/42#212:ok fmt:ok -->
cs_CZ <!-- open:ok syms:40/42#212:ok fmt:ok -->
cy <!-- open:ok syms:40/42#221:ok fmt:ok -->
cy_GB <!-- open:ok syms:40/42#221:ok fmt:ok -->
da <!-- open:ok syms:40/42#194:ok fmt:ok -->
da_DK <!-- open:ok syms:40/42#194:ok fmt:ok -->
de <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_AT <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_BE <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_CH <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_DE <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_LI <!-- open:ok syms:40/42#195:ok fmt:ok -->
de_LU <!-- open:ok syms:40/42#195:ok fmt:ok -->
el <!-- open:ok syms:40/42#218:ok fmt:ok -->
el_CY <!-- open:ok syms:40/42#218:ok fmt:ok -->
el_GR <!-- open:ok syms:40/42#218:ok fmt:ok -->
en <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_AU <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BW <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_BZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_CA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_GB <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_HK <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IE <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_IN <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_JM <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_MH <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_MT <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_NA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_NZ <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_PH <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_PK <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_SG <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_TT <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_US_POSIX <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_VI <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZA <!-- open:ok syms:40/42#185:ok fmt:ok -->
en_ZW <!-- open:ok syms:40/42#185:ok fmt:ok -->
eo <!-- open:ok syms:40/42#177:ok fmt:ok -->
es <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_AR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_BO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CL <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_CR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_DO <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_EC <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_ES <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_GT <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_HN <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_MX <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_NI <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PA <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PE <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PR <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_PY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_SV <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_US <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_UY <!-- open:ok syms:40/42#188:ok fmt:ok -->
es_VE <!-- open:ok syms:40/42#188:ok fmt:ok -->
et <!-- open:ok syms:40/42#201:ok fmt:ok -->
et_EE <!-- open:ok syms:40/42#201:ok fmt:ok -->
eu <!-- open:ok syms:40/42#197:ok fmt:ok -->
eu_ES <!-- open:ok syms:40/42#197:ok fmt:ok -->
fa <!-- open:ok syms:40/42#214:ok fmt:ok -->
fa_AF <!-- open:ok syms:40/42#197:ok fmt:ok -->
fa_IR <!-- open:ok syms:40/42#214:ok fmt:ok -->
fi <!-- open:ok syms:40/42#330:ok fmt:ok -->
fi_FI <!-- open:ok syms:40/42#330:ok fmt:ok -->
fo <!-- open:ok syms:40/42#200:ok fmt:ok -->
fo_FO <!-- open:ok syms:40/42#200:ok fmt:ok -->
fr <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_BE <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_CA <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_CH <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_FR <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_LU <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_MC <!-- open:ok syms:40/42#215:ok fmt:ok -->
fr_SN <!-- open:ok syms:40/42#215:ok fmt:ok -->
ga <!-- open:ok syms:40/42#247:ok fmt:ok -->
ga_IE <!-- open:ok syms:40/42#247:ok fmt:ok -->
gl <!-- open:ok syms:40/42#182:ok fmt:ok -->
gl_ES <!-- open:ok syms:40/42#182:ok fmt:ok -->
gsw <!-- open:ok syms:40/42#201:ok fmt:ok -->
gsw_CH <!-- open:ok syms:40/42#201:ok fmt:ok -->
gu <!-- open:ok syms:40/42#206:ok fmt:ok -->
gu_IN <!-- open:ok syms:40/42#206:ok fmt:ok -->
gv <!-- open:ok syms:40/42#295:ok fmt:ok -->
gv_GB <!-- open:ok syms:40/42#295:ok fmt:ok -->
ha <!-- open:ok syms:40/42#178:ok fmt:ok -->
ha_Latn <!-- open:ok syms:40/42#178:ok fmt:ok -->
ha_Latn_GH <!-- open:ok syms:40/42#178:ok fmt:ok -->
ha_Latn_NE <!-- open:ok syms:40/42#178:ok fmt:ok -->
ha_Latn_NG <!-- open:ok syms:40/42#178:ok fmt:ok -->
haw <!-- open:ok syms:40/42#199:ok fmt:ok -->
haw_US <!-- open:ok syms:40/42#199:ok fmt:ok -->
he <!-- open:ok syms:40/42#204:ok fmt:ok -->
he_IL <!-- open:ok syms:40/42#204:ok fmt:ok -->
hi <!-- open:ok syms:40/42#207:ok fmt:ok -->
hi_IN <!-- open:ok syms:40/42#207:ok fmt:ok -->
hr <!-- open:ok syms:40/42#203:ok fmt:ok -->
hr_HR <!-- open:ok syms:40/42#203:ok fmt:ok -->
hu <!-- open:ok syms:40/42#206:ok fmt:ok -->
hu_HU <!-- open:ok syms:40/42#206:ok fmt:ok -->
hy <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM <!-- open:ok syms:40/42#204:ok fmt:ok -->
hy_AM_REVISED <!-- open:ok syms:40/42#204:ok fmt:ok -->
id <!-- open:ok syms:40/42#173:ok fmt:ok -->
id_ID <!-- open:ok syms:40/42#173:ok fmt:ok -->
ii <!-- open:ok syms:40/42#93:ok fmt:ok -->
ii_CN <!-- open:ok syms:40/42#93:ok fmt:ok -->
is <!-- open:ok syms:40/42#223:ok fmt:ok -->
is_IS <!-- open:ok syms:40/42#223:ok fmt:ok -->
it <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_CH <!-- open:ok syms:40/42#193:ok fmt:ok -->
it_IT <!-- open:ok syms:40/42#193:ok fmt:ok -->
ja <!-- open:ok syms:40/42#87:ok fmt:ok -->
ja_JP <!-- open:ok syms:40/42#87:ok fmt:ok -->
ka <!-- open:ok syms:40/42#49:ok fmt:ok -->
ka_GE <!-- open:ok syms:40/42#49:ok fmt:ok -->
kk <!-- open:ok syms:40/42#193:ok fmt:ok -->
kk_Cyrl <!-- open:ok syms:40/42#193:ok fmt:ok -->
kk_Cyrl_KZ <!-- open:ok syms:40/42#193:ok fmt:ok -->
kl <!-- open:ok syms:40/42#237:ok fmt:ok -->
kl_GL <!-- open:ok syms:40/42#237:ok fmt:ok -->
km <!-- open:ok syms:40/42#105:ok fmt:ok -->
km_KH <!-- open:ok syms:40/42#105:ok fmt:ok -->
kn <!-- open:ok syms:40/42#220:ok fmt:ok -->
kn_IN <!-- open:ok syms:40/42#220:ok fmt:ok -->
ko <!-- open:ok syms:40/42#87:ok fmt:ok -->
ko_KR <!-- open:ok syms:40/42#87:ok fmt:ok -->
kok <!-- open:ok syms:40/42#243:ok fmt:ok -->
kok_IN <!-- open:ok syms:40/42#243:ok fmt:ok -->
kw <!-- open:ok syms:40/42#224:ok fmt:ok -->
kw_GB <!-- open:ok syms:40/42#224:ok fmt:ok -->
lt <!-- open:ok syms:40/42#231:ok fmt:ok -->
lt_LT <!-- open:ok syms:40/42#231:ok fmt:ok -->
lv <!-- open:ok syms:40/42#231:ok fmt:ok -->
lv_LV <!-- open:ok syms:40/42#231:ok fmt:ok -->
mk <!-- open:ok syms:40/42#208:ok fmt:ok -->
mk_MK <!-- open:ok syms:40/42#208:ok fmt:ok -->
ml <!-- open:ok syms:40/42#262:ok fmt:ok -->
ml_IN <!-- open:ok syms:40/42#262:ok fmt:ok -->
mr <!-- open:ok syms:40/42#230:ok fmt:ok -->
mr_IN <!-- open:ok syms:40/42#230:ok fmt:ok -->
ms <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_BN <!-- open:ok syms:40/42#169:ok fmt:ok -->
ms_MY <!-- open:ok syms:40/42#169:ok fmt:ok -->
mt <!-- open:ok syms:40/42#191:ok fmt:ok -->
mt_MT <!-- open:ok syms:40/42#191:ok fmt:ok -->
nb <!-- open:ok syms:40/42#200:ok fmt:ok -->
nb_NO <!-- open:ok syms:40/42#200:ok fmt:ok -->
ne <!-- open:ok syms:40/42#55:ok fmt:ok -->
ne_IN <!-- open:ok syms:40/42#55:ok fmt:ok -->
ne_NP <!-- open:ok syms:40/42#55:ok fmt:ok -->
nl <!-- open:ok syms:40/42#203:ok fmt:ok -->
nl_BE <!-- open:ok syms:40/42#203:ok fmt:ok -->
nl_NL <!-- open:ok syms:40/42#203:ok fmt:ok -->
nn <!-- open:ok syms:40/42#182:ok fmt:ok -->
nn_NO <!-- open:ok syms:40/42#182:ok fmt:ok -->
om <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_ET <!-- open:ok syms:40/42#208:ok fmt:ok -->
om_KE <!-- open:ok syms:40/42#208:ok fmt:ok -->
or <!-- open:ok syms:40/42#232:ok fmt:ok -->
or_IN <!-- open:ok syms:40/42#232:ok fmt:ok -->
pa <!-- open:ok syms:40/42#196:ok fmt:ok -->
pa_Arab <!-- open:ok syms:40/42#176:ok fmt:ok -->
pa_Arab_PK <!-- open:ok syms:40/42#176:ok fmt:ok -->
pa_Guru <!-- open:ok syms:40/42#196:ok fmt:ok -->
pa_Guru_IN <!-- open:ok syms:40/42#196:ok fmt:ok -->
pl <!-- open:ok syms:40/42#212:ok fmt:ok -->
pl_PL <!-- open:ok syms:40/42#212:ok fmt:ok -->
ps <!-- open:ok syms:40/42#202:ok fmt:ok -->
ps_AF <!-- open:ok syms:40/42#202:ok fmt:ok -->
pt <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_BR <!-- open:ok syms:40/42#214:ok fmt:ok -->
pt_PT <!-- open:ok syms:40/42#214:ok fmt:ok -->
ro <!-- open:ok syms:40/42#199:ok fmt:ok -->
ro_MD <!-- open:ok syms:40/42#199:ok fmt:ok -->
ro_RO <!-- open:ok syms:40/42#199:ok fmt:ok -->
ru <!-- open:ok syms:40/42#201:ok fmt:ok -->
ru_RU <!-- open:ok syms:40/42#201:ok fmt:ok -->
ru_UA <!-- open:ok syms:40/42#201:ok fmt:ok -->
si <!-- open:ok syms:40/42#217:ok fmt:ok -->
si_LK <!-- open:ok syms:40/42#217:ok fmt:ok -->
sk <!-- open:ok syms:40/42#185:ok fmt:ok -->
sk_SK <!-- open:ok syms:40/42#185:ok fmt:ok -->
sl <!-- open:ok syms:40/42#192:ok fmt:ok -->
sl_SI <!-- open:ok syms:40/42#192:ok fmt:ok -->
so <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_DJ <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_ET <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_KE <!-- open:ok syms:40/42#298:ok fmt:ok -->
so_SO <!-- open:ok syms:40/42#298:ok fmt:ok -->
sq <!-- open:ok syms:40/42#186:ok fmt:ok -->
sq_AL <!-- open:ok syms:40/42#186:ok fmt:ok -->
sr <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl_BA <!-- open:ok syms:40/42#187:ok fmt:ok -->
sr_Cyrl_ME <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Cyrl_RS <!-- open:ok syms:40/42#183:ok fmt:ok -->
sr_Latn <!-- open:ok syms:40/42#185:ok fmt:ok -->
sr_Latn_BA <!-- open:ok syms:40/42#185:ok fmt:ok -->
sr_Latn_ME <!-- open:ok syms:40/42#185:ok fmt:ok -->
sr_Latn_RS <!-- open:ok syms:40/42#185:ok fmt:ok -->
sv <!-- open:ok syms:40/42#185:ok fmt:ok -->
sv_FI <!-- open:ok syms:40/42#185:ok fmt:ok -->
sv_SE <!-- open:ok syms:40/42#185:ok fmt:ok -->
sw <!-- open:ok syms:40/42#186:ok fmt:ok -->
sw_KE <!-- open:ok syms:40/42#186:ok fmt:ok -->
sw_TZ <!-- open:ok syms:40/42#186:ok fmt:ok -->
ta <!-- open:ok syms:40/42#183:ok fmt:ok -->
ta_IN <!-- open:ok syms:40/42#183:ok fmt:ok -->
te <!-- open:ok syms:40/42#231:ok fmt:ok -->
te_IN <!-- open:ok syms:40/42#231:ok fmt:ok -->
th <!-- open:ok syms:39/41#218:ok fmt:ok -->
th_TH <!-- open:ok syms:39/41#218:ok fmt:ok -->
ti <!-- open:ok syms:40/42#133:ok fmt:ok -->
ti_ER <!-- open:ok syms:40/42#125:ok fmt:ok -->
ti_ET <!-- open:ok syms:40/42#133:ok fmt:ok -->
tr <!-- open:ok syms:40/42#171:ok fmt:ok -->
tr_TR <!-- open:ok syms:40/42#171:ok fmt:ok -->
uk <!-- open:ok syms:40/42#204:ok fmt:ok -->
uk_UA <!-- open:ok syms:40/42#204:ok fmt:ok -->
ur <!-- open:ok syms:40/42#179:ok fmt:ok -->
ur_IN <!-- open:ok syms:40/42#179:ok fmt:ok -->
ur_PK <!-- open:ok syms:40/42#179:ok fmt:ok -->
uz <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Arab <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Arab_AF <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Cyrl <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Cyrl_UZ <!-- open:ok syms:40/42#49:ok fmt:ok -->
uz_Latn <!-- open:ok syms:40/42#141:ok fmt:ok -->
uz_Latn_UZ <!-- open:ok syms:40/42#141:ok fmt:ok -->
vi <!-- open:ok syms:40/42#267:ok fmt:ok -->
vi_VN <!-- open:ok syms:40/42#267:ok fmt:ok -->
zh <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans_CN <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans_HK <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans_MO <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hans_SG <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hant <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hant_HK <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hant_MO <!-- open:ok syms:40/42#94:ok fmt:ok -->
zh_Hant_TW <!-- open:ok syms:40/42#94:ok fmt:ok -->
zu <!-- open:ok syms:40/42#201:ok fmt:ok -->
zu_ZA <!-- open:ok syms:40/42#201:ok fmt:ok -->
</feature>
<feature type="collation" total="219" version="???">
af
af_NA
af_ZA
ar
ar_AE
ar_BH
ar_DZ
ar_EG
ar_IQ
ar_JO
ar_KW
ar_LB
ar_LY
ar_MA
ar_OM
ar_QA
ar_SA
ar_SD
ar_SY
ar_TN
ar_YE
as
as_IN
az
az_Latn
az_Latn_AZ
be
be_BY
bg
bg_BG
bn
bn_IN
ca
ca_ES
cs
cs_CZ
cy
da
da_DK
de
de_AT
de_BE
de_CH
de_DE
de_LU
el
el_GR
en
en_AU
en_BE
en_BW
en_CA
en_GB
en_HK
en_IE
en_IN
en_MT
en_NZ
en_PH
en_SG
en_US
en_US_POSIX
en_VI
en_ZA
en_ZW
eo
es
es_AR
es_BO
es_CL
es_CO
es_CR
es_DO
es_EC
es_ES
es_GT
es_HN
es_MX
es_NI
es_PA
es_PE
es_PR
es_PY
es_SV
es_US
es_UY
es_VE
et
et_EE
fa
fa_AF
fa_IR
fi
fi_FI
fo
fo_FO
fr
fr_BE
fr_CA
fr_CH
fr_FR
fr_LU
ga
ga_IE
gu
gu_IN
haw
he
he_IL
hi
hi_IN
hr
hr_HR
hu
hu_HU
id
id_ID
is
is_IS
it
it_CH
it_IT
ja
ja_JP
kk
kk_KZ
kl
kl_GL
km
kn
kn_IN
ko
ko_KR
kok
lt
lt_LT
lv
lv_LV
mk
mk_MK
ml
mr
mr_IN
ms
ms_BN
ms_MY
mt
mt_MT
nb
nb_NO
nl
nl_BE
nl_NL
nn
nn_NO
om
om_ET
om_KE
or
pa
pa_Arab
pa_Arab_PK
pa_Guru
pa_Guru_IN
pl
pl_PL
ps
ps_AF
pt
pt_BR
pt_PT
ro
ro_RO
ru
ru_RU
ru_UA
si
si_LK
sk
sk_SK
sl
sl_SI
sq
sq_AL
sr
sr_Cyrl
sr_Cyrl_BA
sr_Cyrl_ME
sr_Cyrl_RS
sr_Latn
sr_Latn_BA
sr_Latn_ME
sr_Latn_RS
sv
sv_FI
sv_SE
ta
ta_IN
te
te_IN
th
th_TH
tr
tr_TR
uk
uk_UA
ur
ur_IN
ur_PK
vi
vi_VN
zh
zh_Hans
zh_Hans_CN
zh_Hans_SG
zh_Hant
zh_Hant_HK
zh_Hant_MO
zh_Hant_TW
</feature>
</capabilities>
</release>
</releases>
</icuProduct>
</icuProducts>
</icuInfo>

File diff suppressed because it is too large Load diff

View file

@ -1,79 +0,0 @@
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
// Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved.
#include <stdio.h>
#include "xmlout.h"
#include <unistd.h>
#include <stdlib.h>
XMLFile::XMLFile(FILE *f) {
file = f;
level = 0;
}
XMLFile::~XMLFile()
{
}
void XMLFile::write(const char *s) {
fputs(s, file);
}
void XMLFile::writeln(const char *s) {
writeIndent();
write(s);
write("\n");
}
int XMLFile::indent(const char *s, bool single) {
int oldLevel = level;
writeln(s);
level++;
if(single) {
level--;
}
return oldLevel;
}
int XMLFile::outdent(const char *s) {
level--;
writeln(s);
return level;
}
void XMLFile::writeIndent() {
for(int i=0;i<level;i++) {
write("\t");
}
}
XMLElement::XMLElement(XMLFile &f, const char *name, const char *attribs, bool single) : file(f), name(name), single(single) {
char outs[200];
if(attribs!=nullptr) {
sprintf(outs,"<%s %s", name, attribs);
} else {
sprintf(outs, "<%s", name);
}
if(single) {
strcat(outs, "/>");
} else {
strcat(outs, ">");
}
oldlevel = file.indent(outs, single);
}
XMLElement::~XMLElement() {
if(!single) {
char outs[200];
sprintf(outs,"</%s>", name);
int newlevel = file.outdent(outs);
if(newlevel != oldlevel) {
fprintf(stderr, "@@@ ERROR: elemet %s popped out to level %d but expected %d. Abort.\n", name, newlevel, oldlevel);
fflush(stderr);
abort();
}
}
}

View file

@ -1,49 +0,0 @@
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
// Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved.
#include <stdio.h>
#include "unicode/utypes.h"
#include <string.h>
class XMLFile {
public:
XMLFile(FILE *f);
~XMLFile();
/**
* Write indent at current level, increment level, and then return what the initial level was
*/
int indent(const char *s, bool single = false);
/**
* Decrement level, write indent of 'outer' level, and return what the new level is. Should match your earlier call to indent.
*/
int outdent(const char *s);
/**
* Write some string
*/
void writeln(const char *s);
private:
void writeIndent();
/**
* Write some string without indent. */
void write(const char *s);
int level;
FILE *file;
};
class XMLElement {
public:
XMLElement(XMLFile &f, const char *name, const char *attribs = nullptr, bool single=false);
~XMLElement();
const char *name;
int oldlevel;
XMLFile &file;
bool single;
};

View file

@ -1,7 +0,0 @@
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved.
s%<!--.*-->%%g
s%[ ][ ]*% %g

View file

@ -1,7 +0,0 @@
#!/bin/sh
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved.
sed -f zappit.sed | tr -s ' \012 ' ' '

View file

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/CLDR_JAR"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/ICU_META_LIB"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/ICU_UTILITIES"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View file

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>icu4jscan</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View file

@ -1,6 +0,0 @@
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (C) 2012 IBM Corporation and Others. All Rights Reserved.
This project isn't used directly (except you can run it as an eclipse project for development). It's called from ../icu4cscan

View file

@ -1,118 +0,0 @@
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/* Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved. */
package com.ibm.icu.dev.scan;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
public class CapDocument implements CapNode {
public class TextCap extends CapElement {
TextCap(String str) {
super(str);
}
public void write(PrintWriter pw, int i) {
writeIndent(pw,i);
pw.write(getName()+"\n");
}
}
public class CommentElement extends CapElement {
CommentElement(String str) {
super(str);
}
public void write(PrintWriter pw, int indent) {
writeIndent(pw,indent);
pw.write("<!-- "+getName()+" -->\n");
}
}
TagElement root = new TagElement();
public class TagElement extends CapElement {
public TagElement() {
super("");
}
public TagElement(String name) {
super(name);
}
public void write(PrintWriter pw, int indent) {
if(getName().length()>0) {
writeIndent(pw,indent);
pw.write("<"+getName());
if(!attributes.isEmpty()) {
for(Iterator iter = attributes.entrySet().iterator();iter.hasNext();) {
Map.Entry o = (Map.Entry)iter.next();
pw.write(" "+o.getKey().toString()+"=\""+o.getValue()+"\"");
}
}
pw.write(">\n");
indent++;
}
for(Iterator iter = children.iterator();iter.hasNext();) {
CapNode ch = (CapNode)iter.next();
ch.write(pw, indent);
}
if(getName().length()>0) {
indent--;
writeIndent(pw,indent);
pw.write("</"+getName());
pw.write(">\n");
}
}
}
private static void writeIndent(PrintWriter pw, int indent) {
for(;indent>0;indent--) {
pw.write(' ');
}
}
public CapElement createCapElement(String name) {
return new TagElement(name);
}
public void appendChild(CapElement base) {
root.appendChild(base);
}
public static CapDocument newCapDocument() {
return new CapDocument();
}
public static void printDOMTree(CapDocument out, PrintWriter pw,
String string, Object object) {
pw.write(string+"\n");
out.root.write(pw,0);
}
public void write(PrintWriter pw, int indent) {
root.write(pw,0);
}
public CapNode createTextNode(String trim) {
return new TextCap(trim);
}
public CapElement createComment(String com) {
return new CommentElement(com);
}
public int compareTo(Object arg0) {
return getName().compareTo(((CapNode)arg0).getName());
}
public String getName() {
return root.getName();
}
}

View file

@ -1,53 +0,0 @@
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/* Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved. */
package com.ibm.icu.dev.scan;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
public abstract class CapElement implements CapNode {
String com;
CapElement(String str) {
com = str;
}
public String getName() {
return com;
}
public abstract void write(PrintWriter pw, int i);
public int compareTo(Object arg0) {
if(arg0 == this) return 0;
int str = getName().compareTo(((CapNode)arg0).getName());
if(str!=0) return str;
if(arg0 instanceof CapElement) {
CapElement oth = (CapElement)arg0;
return attributes.toString().compareTo(oth.attributes.toString());
}
return 0;
}
Map attributes = new HashMap();
Set children = new TreeSet();
public void setAttribute(String k, String v) {
attributes.put(k, v);
}
public void appendChild(CapNode e) {
children.add(e);
}
public String getNodeName() {
return getName();
}
}

View file

@ -1,15 +0,0 @@
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/* Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved. */
package com.ibm.icu.dev.scan;
import java.io.PrintWriter;
public interface CapNode extends Comparable {
void write(PrintWriter pw, int i);
String getName();
}

View file

@ -1,131 +0,0 @@
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/* Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved. */
package com.ibm.icu.dev.scan;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Calendar;
import javax.xml.parsers.ParserConfigurationException;
import org.unicode.cldr.util.LDMLUtilities;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import com.ibm.icu.dev.meta.IcuInfo;
import com.ibm.icu.dev.meta.XMLUtil;
import com.ibm.icu.util.VersionInfo;
public abstract class CapScan {
/** Capabilities string **/
public static final String FORMATTING = "formatting";
public static final String COLLATION = "collation";
/**
* @param args
*/
public static void main(String[] args) throws IOException, ParserConfigurationException {
System.err.println("# "+CapScan.class.getSimpleName()+": This is just the base class. Use a subclass.");
System.exit(1);
}
protected String prog;
protected Element addCapability(Document out, Element capabilities, String name) {
return addCapability(out, capabilities, name, (String)null);
}
protected Element addCapability(Document out, Element capabilities, String name,
String version) {
Element e = out.createElement(IcuInfo.FEATURE);
e.setAttribute(IcuInfo.TYPE,name.trim());
if(version!=null) {
e.setAttribute(IcuInfo.VERSION,version.trim());
}
capabilities.appendChild(e);
return e;
}
protected Element addCapability(Document out, Element capabilities, String name,
VersionInfo version) {
return addCapability(out, capabilities, name, IcuInfo.versionInfoToShortString(version));
}
protected CapScan(String prog) {
this.prog = prog;
}
Document out;
protected Element createProduct(String productName) {
Element base = out.createElement(IcuInfo.ICU_INFO);
out.appendChild(base);
Element products = out.createElement(IcuInfo.ICU_PRODUCTS);
base.appendChild(products);
Element product = out.createElement(IcuInfo.ICU_PRODUCT);
product.setAttribute(IcuInfo.TYPE, productName);
products.appendChild(product);
return product;
}
protected Element createRelease(Element product, String version) {
Element releases = out.createElement(IcuInfo.RELEASES);
product.appendChild(releases);
Element release = out.createElement(IcuInfo.RELEASE);
release.setAttribute(IcuInfo.VERSION, version);
releases.appendChild(release);
return release;
}
protected void runMain(String args[]) throws IOException, ParserConfigurationException {
System.err.println("# "+prog+": startup.");
// TODO Auto-generated method stub
out = XMLUtil.getBuilder().newDocument();
Element product = createProduct(getProduct());
Element release = createRelease(product, getRelease());
Element capabilities = out.createElement(IcuInfo.CAPABILITIES);
release.appendChild(capabilities);
addCapabilitiesTo(capabilities);
// write out
OutputStream outstr = null;
outstr = System.out;
// java.io.FileOutputStream fos = null;
// if(outfile!=null) {
// fos = new FileOutputStream(outfile);
// out = fos;
// if(verbose) System.err.println("# Write <"+outfile+">");
// } else {
// out = System.out;
// if(verbose) System.err.println("# Write <stdout>");
// }
// try {
java.io.OutputStreamWriter writer = new java.io.OutputStreamWriter(
outstr);
String copy = "";
if(true) copy = ("<!-- Copyright (c) "+Calendar.getInstance().get(Calendar.YEAR)+" IBM Corporation and Others, All Rights Reserved. -->\n");
LDMLUtilities.printDOMTree(out, new PrintWriter(writer),copy+"\n<!DOCTYPE icuInfo SYSTEM \"http://icu-project.org/dtd/icumeta.dtd\">\n",null); //
writer.flush();
}
protected abstract String getProduct();
protected abstract String getRelease();
protected abstract void addCapabilitiesTo(Element capabilities);
}

View file

@ -1,158 +0,0 @@
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/* Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved. */
/**
*
*/
package com.ibm.icu.dev.scan;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Calendar;
import java.util.Date;
import javax.xml.parsers.ParserConfigurationException;
import org.unicode.cldr.util.LDMLUtilities;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import com.ibm.icu.dev.meta.IcuInfo;
import com.ibm.icu.dev.meta.XMLUtil;
import com.ibm.icu.lang.UCharacter;
import com.ibm.icu.text.Collator;
import com.ibm.icu.text.DateFormat;
import com.ibm.icu.text.RuleBasedCollator;
import com.ibm.icu.util.TimeZone;
import com.ibm.icu.util.ULocale;
import com.ibm.icu.util.VersionInfo;
/**
* @author srl
*
*/
public class ScanICU extends CapScan{
protected ScanICU() {
super(ScanICU.class.getName());
}
/**
* @param args
* @throws ParserConfigurationException
* @throws IOException
* @throws IOException
* @throws ParserConfigurationException
* @throws IOException
*/
public static void main(String[] args) throws IOException, ParserConfigurationException {
new ScanICU().runMain(args);
}
protected String getProduct() {
return "icu4j";
}
protected String getRelease() {
/*
* try {
} catch(NoClassDefFoundError ncdf) {
System.err.println(prog+": Can't get ICU version: " + ncdf.toString());
System.exit(1);
} catch(NoSuchFieldError nsme) {
System.err.println(prog+": Can't get ICU version: " + nsme.toString());
System.exit(1);
}
*/
return IcuInfo.versionInfoToShortString(VersionInfo.ICU_VERSION);
}
protected void addCapabilitiesTo(Element capabilities) {
addCapability(out, capabilities, "unicode", UCharacter.getUnicodeVersion());
try {
addCapability(out, capabilities, "uca", Collator.getInstance().getUCAVersion());
} catch(NoSuchMethodError nsme) {
System.err.println(prog+": Note: "+nsme.toString());
}
try {
addCapability(out, capabilities, "tz", TimeZone.getTZDataVersion());
} catch(NoSuchMethodError nsme) {
System.err.println(prog+": Note: "+nsme.toString());
}
addFormatting(capabilities);
addCollation(capabilities);
}
void addFormatting(Element capabilities) {
Element locs = addCapability(out, capabilities, CapScan.FORMATTING);
try {
ULocale available[] = ULocale.getAvailableLocales();
locs.setAttribute("total", Integer.toString(available.length));
String locinfo = "";
Spinner sp = new Spinner(locs.getNodeName(),available.length);
for(int i=0;i<available.length;i++) {
ULocale loc = available[i];
if(loc.toString().equals("root")) continue;
try {
DateFormat fmt = null;
try {
fmt = DateFormat.getTimeInstance(DateFormat.FULL, loc);
}catch (Throwable t) {
fmt = DateFormat.getTimeInstance(DateFormat.FULL, loc.toLocale());
}
fmt.format(new Date(1234));
locinfo = locinfo + " " + loc.toString();
sp.spin(loc.getBaseName());
} catch (Throwable t) {
System.err.println(prog+": loc fail: " + loc + " - " + t.toString());
}
}
Node tt = out.createTextNode(locinfo.trim());
locs.appendChild(tt);
} catch(NoClassDefFoundError ncdf) {
System.err.println(prog+": locales: " + ncdf.toString());
} catch(NoSuchMethodError ncdf) {
System.err.println(prog+": locales: " + ncdf.toString());
}
}
void addCollation(Element capabilities) {
{
Element locs = addCapability(out, capabilities, CapScan.COLLATION);
try {
ULocale available[] = Collator.getAvailableULocales();
Spinner sp = new Spinner(locs.getNodeName(),available.length);
locs.setAttribute("total", Integer.toString(available.length));
String locinfo = "";
for(int i=0;i<available.length;i++) {
ULocale loc = available[i];
if(loc.toString().equals("root")) continue;
try {
// Collator.getInstance(loc);
locinfo = locinfo + " " + loc.toString();
sp.spin(loc.getBaseName());
} catch (Throwable t) {
System.err.println("loc fail: " + loc + " - " + t.toString());
}
}
Node tt = out.createTextNode(locinfo.trim());
locs.appendChild(tt);
} catch(NoClassDefFoundError ncdf) {
System.err.println("locales: " + ncdf.toString());
} catch(NoSuchMethodError ncdf) {
System.err.println("locales: " + ncdf.toString());
}
}
}
}

View file

@ -1,139 +0,0 @@
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/* Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved. */
package com.ibm.icu.dev.scan;
import java.io.IOException;
import java.text.Collator;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
import javax.xml.parsers.ParserConfigurationException;
import com.ibm.icu.util.ULocale;
/**
* @author srl
*
*/
public class ScanJava extends SimpleScan {
/**
* @param prog
*/
public ScanJava() {
super(ScanJava.class.getName());
}
/* (non-Javadoc)
* @see com.ibm.icu.dev.scan.CapScan#addCapabilitiesTo(org.w3c.dom.CapElement)
*/
protected void addCapabilitiesTo(CapElement capabilities) {
addFormatting(capabilities);
addCollation(capabilities);
}
private void addCollation(CapElement capabilities) {
CapElement locs = addCapability(out, capabilities, CapScan.COLLATION);
try {
Locale available[] = Collator.getAvailableLocales();
locs.setAttribute("total", Integer.toString(available.length));
System.err.println("Begin coll!");
String locinfo = "";
Spinner sp = new Spinner(locs.getNodeName(),available.length);
for(int i=0;i<available.length;i++) {
Locale loc = available[i];
if(loc.toString().equals("root")) continue;
try {
Collator c = Collator.getInstance(loc);
DateFormat fmt = DateFormat.getTimeInstance(DateFormat.FULL, loc);
fmt.format(new Date(1234));
locinfo = locinfo + " " + loc.toString();
sp.spin(loc.toString());
} catch (Throwable t) {
System.err.println(prog+": loc fail: " + loc + " - " + t.toString());
}
}
CapNode tt = out.createTextNode(locinfo.trim());
locs.appendChild(tt);
} catch(NoClassDefFoundError ncdf) {
System.err.println(prog+": collation: " + ncdf.toString());
} catch(NoSuchMethodError ncdf) {
System.err.println(prog+": collation: " + ncdf.toString());
}
locs.appendChild(out.createComment("Note: Java locales have different conventions than ICU."));
}
private void addFormatting(CapElement capabilities) {
CapElement locs = addCapability(out, capabilities, CapScan.FORMATTING);
try {
Locale available[] = Locale.getAvailableLocales();
locs.setAttribute("total", Integer.toString(available.length));
String locinfo = "";
Spinner sp = new Spinner(locs.getNodeName(),available.length);
for(int i=0;i<available.length;i++) {
Locale loc = available[i];
if(loc.toString().equals("root")) continue;
try {
DateFormat fmt = DateFormat.getTimeInstance(DateFormat.FULL, loc);
fmt.format(new Date(1234));
locinfo = locinfo + " " + loc.toString();
sp.spin(loc.toString());
} catch (Throwable t) {
System.err.println(prog+": loc fail: " + loc + " - " + t.toString());
}
}
CapNode tt = out.createTextNode(locinfo.trim());
locs.appendChild(tt);
} catch(NoClassDefFoundError ncdf) {
System.err.println(prog+": locales: " + ncdf.toString());
} catch(NoSuchMethodError ncdf) {
System.err.println(prog+": locales: " + ncdf.toString());
}
locs.appendChild(out.createComment("Note: Java locales have different conventions than ICU."));
}
/* (non-Javadoc)
* @see com.ibm.icu.dev.scan.CapScan#getProduct()
*/
protected String getProduct() {
return "java";
}
/* (non-Javadoc)
* @see com.ibm.icu.dev.scan.CapScan#getRelease()
*/
protected String getRelease() {
String ver = System.getProperty("java.version");
int u = ver.indexOf('_');
if(u>0) {
ver = ver.substring(0,u);
}
return ver;
}
/**
* @param args
* @throws ParserConfigurationException
* @throws IOException
*/
public static void main(String[] args) throws IOException {
new ScanJava().runMain(args);
}
}

View file

@ -1,128 +0,0 @@
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/* Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved. */
package com.ibm.icu.dev.scan;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Calendar;
import javax.xml.parsers.ParserConfigurationException;
import org.unicode.cldr.util.LDMLUtilities;
import com.ibm.icu.dev.meta.IcuInfo;
import com.ibm.icu.dev.meta.XMLUtil;
import com.ibm.icu.util.VersionInfo;
public abstract class SimpleScan {
/** Capabilities string **/
public static final String FORMATTING = "formatting";
public static final String COLLATION = "collation";
/**
* @param args
*/
public static void main(String[] args) throws IOException, ParserConfigurationException {
System.err.println("# "+SimpleScan.class.getSimpleName()+": This is just the base class. Use a subclass.");
System.exit(1);
}
protected String prog;
protected CapElement addCapability(CapDocument out, CapElement capabilities, String name) {
return addCapability(out, capabilities, name, (String)null);
}
protected CapElement addCapability(CapDocument out, CapElement capabilities, String name,
String version) {
CapElement e = out.createCapElement(IcuInfo.FEATURE);
e.setAttribute(IcuInfo.TYPE,name.trim());
if(version!=null) {
e.setAttribute(IcuInfo.VERSION,version.trim());
}
capabilities.appendChild(e);
return e;
}
protected CapElement addCapability(CapDocument out, CapElement capabilities, String name,
VersionInfo version) {
return addCapability(out, capabilities, name, IcuInfo.versionInfoToShortString(version));
}
protected SimpleScan(String prog) {
this.prog = prog;
}
CapDocument out;
protected CapElement createProduct(String productName) {
CapElement base = out.createCapElement(IcuInfo.ICU_INFO);
out.appendChild(base);
CapElement products = out.createCapElement(IcuInfo.ICU_PRODUCTS);
base.appendChild(products);
CapElement product = out.createCapElement(IcuInfo.ICU_PRODUCT);
product.setAttribute(IcuInfo.TYPE, productName);
products.appendChild(product);
return product;
}
protected CapElement createRelease(CapElement product, String version) {
CapElement releases = out.createCapElement(IcuInfo.RELEASES);
product.appendChild(releases);
CapElement release = out.createCapElement(IcuInfo.RELEASE);
release.setAttribute(IcuInfo.VERSION, version);
releases.appendChild(release);
return release;
}
protected void runMain(String args[]) throws IOException {
System.err.println("# "+prog+": startup.");
out = CapDocument.newCapDocument();
CapElement product = createProduct(getProduct());
CapElement release = createRelease(product, getRelease());
CapElement capabilities = out.createCapElement(IcuInfo.CAPABILITIES);
release.appendChild(capabilities);
addCapabilitiesTo(capabilities);
// write out
OutputStream outstr = null;
outstr = System.out;
// java.io.FileOutputStream fos = null;
// if(outfile!=null) {
// fos = new FileOutputStream(outfile);
// out = fos;
// if(verbose) System.err.println("# Write <"+outfile+">");
// } else {
// out = System.out;
// if(verbose) System.err.println("# Write <stdout>");
// }
// try {
java.io.OutputStreamWriter writer = new java.io.OutputStreamWriter(
outstr);
String copy = "";
if(true) copy = ("<!-- Copyright (c) "+Calendar.getInstance().get(Calendar.YEAR)+" IBM Corporation and Others, All Rights Reserved. -->\n");
CapDocument.printDOMTree(out, new PrintWriter(writer),copy+"\n<!DOCTYPE icuInfo SYSTEM \"http://icu-project.org/dtd/icumeta.dtd\">\n",null); //
writer.flush();
}
protected abstract String getProduct();
protected abstract String getRelease();
protected abstract void addCapabilitiesTo(CapElement capabilities);
}

View file

@ -1,34 +0,0 @@
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/* Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved. */
package com.ibm.icu.dev.scan;
class Spinner {
String str = "";
int n = 0;
int max = -1;
Spinner() {
}
Spinner(String str) {
this.str = str;
}
Spinner(String str, int max) {
this.str = str;
this.max = max;
}
void spin() {
spin(null);
}
void spin(String what) {
// TODO: time based.
n++;
if((n%25)==0) {
String nstr="";
if(max>0) {
nstr="/"+max;
}
System.err.println("#"+str+".."+n+nstr+" "+(what!=null?what:""));
}
}
}

View file

@ -1,362 +0,0 @@
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
#
# Copyright (C) 2010-2012 IBM Corporation and Others, All Rights Reserved.
#
all: glurens ii plugs testprog
# extra files that need generation.
PLUG_EXTRA_DEPS=
UNAME=$(shell uname)
DOT=../../c
SOBJ=ao
ifeq ($(UNAME),Linux)
LIBPATH_VAR=LD_LIBRARY_PATH
PLUG_EXTRA_LDFLAGS=-fPIC
PBLD_EXTRA_FLAGS=-fPIC
GLUE_EXTRA_CFLAGS= -fPIC
PLUGLIB_SO=so
else
ifeq ($(UNAME),Darwin)
LIBPATH_VAR=DYLD_LIBRARY_PATH
PLUG_EXTRA_LDFLAGS=-exported_symbols_list $(GLUE_EXPORT) -dynamiclib -dynamic
PLUG_EXTRA_DEPS+=$(GLUE_EXPORT)
PLUGLIB_SO=dylib
else
ifeq ($(UNAME),AIX)
LIBPATH_VAR=LIBPATH
#PLUG_EXTRA_LDFLAGS=-exported_symbols_list $(GLUE_EXPORT) -dynamiclib -dynamic
PLUG_EXTRA_DEPS+=$(GLUE_EXPORT)
PLUGLIB_SO=a
SOBJ=o
else
$(warning **********************************)
$(warning this script may not know how to handle your $(UNAME) system)
endif
endif
endif
SUBHEAD="*** ICU"
srcdir=$(shell pwd)
PROVIDER=provider
LIBPROVIDER=lib$(PROVIDER).a
#libs: $(ICU_TARBALLS_VERS:%=$(OUT)/%/lib/$(LIBPROVIDER))
PLUGLIB_INST=$(C_INS)/r$(PLUGLIB)
PLUGLIB_ICU_CONFIG=$(PLUGLIB_INST)/bin/icu-config
#PLUGLIB_SO=$(shell $(PLUGLIB_ICU_CONFIG) --so 2>/dev/null )
PLUGLIB_NAME=libicuprov.$(PLUGLIB_MAJ).$(PLUGLIB_SO)
#PLUGLIB_MAJ=$(echo $(PLUGLIB) | cut -d_ -f-1 | tr -d _ )
#GLOUT_ICU=$(ICU_TARBALLS_VERS:%=$(GLOUT)/%/$(OK))
PLUGLIB_AVAILABLE=$(shell echo $(PROVIDER_AVAILABLE) | tr '.' '_')
PLUGLIB_AVAILABLE_DATA=$(PLUGLIB_AVAILABLE:%=$(BUILD)/%/data/out/tmp/*.o)
PLUGLIB_AVAILABLE_STATICS=$(PLUGLIB_AVAILABLE:%=$(BUILD)/%/[ci]*/*.$(SOBJ))
PLUGLIB_OUTLIBS=$(PLUGLIB:%=$(OUT)/%/lib/$(PLUGLIB_NAME))
## configuration
# Absolute path to this dir.
# dir holding ICUs to be built
MULTICU_ROOT=../..
include $(MULTICU_ROOT)/c/Makefile-c.inc
ICU_CONFIG=icu-config-nosanity
ICU_CONFIG_ORIG=icu-config
# subdirs...
# prefix to distinguish it from non-provider builds
P_PREFIX=p
BUILD=$(M_TMP)/$(P_PREFIX)bld
INST=$(M_TMP)/$(P_PREFIX)ins
SRC=$(M_TMP)/$(P_PREFIX)src
OUT=$(TOP)/out
SOURCE=$(S_SRCDIR)
GLUE=glue
GLUE_EXPORT=$(GLUE)/export.txt
GLOUT=$(M_TMP)/$(P_PREFIX)glout
# header locations
INCGLUE=$(TOP)/$(GLUE)/include
# relative path to icuglue within glout
GLUREN=gluren/include/icuglue
# relative path to gluren.h
GLUREN_H=$(GLUREN)/gluren.h
# Special 'configure' caller
SUPERCONF=$(TOP)/$(MULTICU_ROOT)/c/superconf.sh
# options to compilation (such as, debug)
XOPTS=$(EXTRA_COMPILE_OPTS)
OK=ok
MOPTS=
# directories that need to be built
ALLDIRS=$(INST) $(BUILD) $(SRC) $(GLOUT) $(OUT) $(GLOUT)/$(PLUGLIB) $(OUT)/$(PLUGLIB)/bin
# The 'ok' flag file for installations
INST_ICU=$(PLUGLIB_AVAILABLE:%=$(INST)/%/$(OK))
BUILD_ICU=$(PLUGLIB_AVAILABLE:%=$(BUILD)/%/$(OK))
# this has to do with the pluglib
GLOUT_ICU=$(PLUGLIB:%=$(GLOUT)/%/obj-$(OK))
#SRC_ICU=$(ICU_TARBALLS_VERS:%=$(SRC)/%/$(OK))
# gluren.h files for each version
GLUREN_ICU=$(PLUGLIB_AVAILABLE:%=$(BUILD)/%/$(GLUREN_H))
#?
CONFIGURE_CMD=
# Options passed to configure
CONFIGURE_OPTS=--enable-static --disable-shared --with-data-packaging=static --disable-extras --disable-icuio --disable-layout --disable-tests --disable-samples $(EXTRA_CONFIGURE_OPTS)
# additional options passed to make
MAKE_XTRA_OPTS="PKGDATA_MODE=static"
# additional options passed to make install
MAKE_INSTALL_XTRA_OPTS=$(MAKE_XTRA_OPTS)
# Munged source names: list of C++, O etc files for Frontend
PARTSUFF=_fe
GL_FE_CXX=$(notdir $(wildcard $(GLUE)/*$(PARTSUFF).cpp))
GL_FE_FILES=$(GL_FE_CXX:%.cpp=$(GLUE)/%.cpp)
GL_FE_O=$(GL_FE_CPP:%.cpp=%.o)
GL_PARTS=$(GL_FE_CXX:%$(PARTSUFF).cpp=%)
# C flags used in Glue compilation
GLUE_CFLAGS=-I$(INCGLUE) $(GLUE_EXTRA_CFLAGS)
# icu-config switches for compiling: C and C++
ICU_CONFIG_COMMON=--cppflags
# icu-config switches for C
ICU_CONFIG_CC=--cc $(ICU_CONFIG_COMMON) --cflags
# icu-config switches for C++
ICU_CONFIG_CXX=--cxx $(ICU_CONFIG_COMMON) --cxxflags
# sigh, include common.
PLUG_EXTRA_FLAGS=-I$(BUILD)/$(PLUGLIB)/common -I$(M_TMP)/build/r$(PLUGLIB)/icu/source/common
include Makefile.local
# Usage: $(call SILENT_COMPILE,logfile,cmd)
ifndef VERBOSE
LOG_COMPILE=echo build with VERBOSE=1 to unhide compile ; ( ($(2) 2>&1) > $(1) || (echo "Compile failed, see logfile in $(1) for details." ;exit 1))
else
LOG_COMPILE=$(2) 2>&1 | tee $(1)
endif
ECHO_COMPILE=echo "\# ${subst ",\",$(1)}" ; ( $(1) || ( exit 1) )
PLUGLIB=$(shell echo $(PROVIDER_TARGET) | tr '.' '_' )
PLUGLIB_MAJ=$(shell ./icu2symver.sh $(PLUGLIB))
## @build All installed ICUs
ii: $(GLOUT_ICU)
# Don't delete these files
.PRECIOUS: (INST_ICU) $(BUILD_ICU) $(SRC_ICU) $(ICU_TARBALLS_VERS:%=$(BUILD)/%/config.status) $(ICU_TARBALLS_VERS:%=$(GLOUT)/%/obj-$(OK)) $(ICU_TARBALLS_VERS:%=$(BUILD)/%/config/$(ICU_CONFIG)) $(PLUGLIB_ICU_CONFIG)
# cleanup
clean:
-rm -rf $(ALLDIRS)
-$(MAKE) -C ../.. clean
# create all empty work dirs
$(ALLDIRS):
-mkdir -p $(@)
# Build r$(PLUGLIB) from ../../c
$(PLUGLIB_ICU_CONFIG):
@echo "$(SUBHEAD) "$(PLUGLIB) "(plugin) building..."
$(call LOG_COMPILE,../../c/ricus$(PLUGLIB).log,$(MAKE) MAKE_OPTS=$(MAKE_OPTS) XTRA_RICU_CPPFLAGS=$(XTRA_RICU_CPPFLAGS) -C ../../c ICUVERS=$(PLUGLIB) ricus)
# build the glue objects for TARGET
# used to be %/* instead of $(PLUGLIB) - now, wire it down to pluglib.
$(GLOUT)/$(PLUGLIB)/obj-$(OK): $(GLOUT) glurens $(PLUGLIB_ICU_CONFIG) $(GL_FE_FILES) $(ALLDIRS)
@echo $(SUBHEAD) $(PLUGLIB) "(plugin) building glue.."
# $(shell $(BUILD)/$(PLUGLIB)/config/$(ICU_CONFIG) $(ICU_CONFIG_CC)) $(GLUE_CFLAGS) -c -DICUGLUE_VER=$(PLUGLIB) -o $(GLOUT)/$(PLUGLIB)/gl_be_c_$(PLUGLIB).o $(GL_BE_C:%.c=$(GLUE)/%.c)
# $(shell $(BUILD)/$(PLUGLIB)/config/$(ICU_CONFIG) $(ICU_CONFIG_CXX)) $(GLUE_CFLAGS) -c -DICUGLUE_VER=$(PLUGLIB) -o $(GLOUT)/$(PLUGLIB)/gl_be_cxx_$(PLUGLIB).o $(GL_BE_CXX:%.cpp=$(GLUE)/%.cpp)
-rm -rf $(GLOUT)/$(PLUGLIB)/include
mkdir -p $(GLOUT)/$(PLUGLIB)/include/icuglue/include
# for each version.. build all OTHER FE files
# TODO: check is unnecessary, not permitted.
# TODO: change to depend instead of for list.
@for ver in $(PLUGLIB_AVAILABLE) ; \
do \
echo "*$(SUBHEAD)" $$ver "(provider)" for $(PLUGLIB) "(plugin)" ; \
if [ ! "$$ver" = "$(PLUGLIB)" ]; \
then \
for part in $(GL_PARTS) ; \
do \
echo "**$(SUBHEAD)" $$ver "(provider) backend: ---- " "$$part" "----" ; \
$(call ECHO_COMPILE,$(shell $(PLUGLIB_ICU_CONFIG) --noverify $(ICU_CONFIG_CXX)) $(GLUE_CFLAGS) -c -I$(TOP)/$(BUILD)/$$ver/gluren/include -DICUGLUE_VER=$$ver -DICUGLUE_VER_STR=\"$$ver\" "-DGLUE_SYM(x)=glue ## x ## $$ver" -o $(GLOUT)/$(PLUGLIB)/$${part}_$${ver}_for_$(PLUGLIB).o $(GLUE)/$${part}$(PARTSUFF).cpp $(XOPTS) ) || exit 1 ; \
done ; \
echo " GLUE_VER( $$ver ) " >> $(GLOUT)/$(PLUGLIB)/include/icuglue/glver.h; \
fi \
done
# build 'this version' FE files
@for part in $(GL_PARTS) ; \
do \
echo "ICU" $(PLUGLIB) "(plugin) building plugin for ------- $$part -----" ; \
$(call ECHO_COMPILE,$(shell $(PLUGLIB_ICU_CONFIG) --noverify $(ICU_CONFIG_CXX)) $(GLUE_CFLAGS) -I$(GLOUT)/$(PLUGLIB)/include -c -o $(GLOUT)/$(PLUGLIB)/$${part}_$(PLUGLIB).o $(GLUE)/$${part}$(PARTSUFF).cpp $(XOPTS) $(PLUG_EXTRA_FLAGS) ) || exit 1 ; \
done
touch $@
plugs: $(PLUGLIB_OUTLIBS) $(OUT)/$(PLUGLIB_MAJ:%=icuplugins%.txt)
install-plugs: $(PLUGLIB_INST)/lib/$(PLUGLIB_NAME) $(PLUGLIB_INST)/lib/icu/icuplugins$(PLUGLIB_MAJ).txt
echo "Plugins installed for testing."
#TODO: should be 'install' not 'cp'
$(PLUGLIB_INST)/lib/$(PLUGLIB_NAME) $(PLUGLIB_INST)/lib/icu/icuplugins$(PLUGLIB_MAJ).txt: $(PLUGLIB_OUTLIBS)
cp $(PLUGLIB_OUTLIBS) $(PLUGLIB_INST)/lib
echo "# Generated. " > $(PLUGLIB_INST)/lib/icu/icuplugins$(PLUGLIB_MAJ).txt
@for part in $(GL_PARTS) ; \
do \
echo "$(PLUGLIB_NAME) $${part}_provider_plugin" >> $(PLUGLIB_INST)/lib/icu/icuplugins$(PLUGLIB_MAJ).txt ; \
echo " $${part}_provider_plugin" ; \
done
$(GLUE_EXPORT): Makefile $(GL_FE_FILES)
echo "# Generated for installation. " > $@
@for part in $(GL_PARTS) ; \
do \
echo "_$${part}_provider_plugin" >> $@ ; \
echo " _$${part}_provider_plugin" ; \
done
$(OUT)/icuplugins$(PLUGLIB_MAJ).txt: $(PLUGLIB_OUTLIBS) Makefile
echo "# Generated for testing." > $@
@for part in $(GL_PARTS) ; \
do \
echo "$(PLUGLIB_NAME) $${part}_provider_plugin" >> $@ ; \
echo " $${part}_provider_plugin" ; \
done
TESTPROG=$(GL_PARTS:%=%diff$(EXEEXT))
testprog: $(PLUGLIB:%=$(OUT)/%/bin/$(TESTPROG))
check-icu2symver:
./check-icu2symver.sh
generate-gdbrc:
echo "# generated by $@" > .gdbrc
echo "set environment ICU_PLUGINS=$(OUT)" >> .gdbrc
echo "set environment $(LIBPATH_VAR)=$(OUT)/../$(PLUGLIB_INST)/lib:$(OUT)/$(PLUGLIB)/lib" >> .gdbrc
check: check-icu2symver all testprog $(OUT)/icuplugins$(PLUGLIB_MAJ).txt
ICU_PLUGINS=$(OUT) $(LIBPATH_VAR)=$(PLUGLIB_INST)/lib:out/$(PLUGLIB)/lib $(PLUGLIB_INST)/bin/icuinfo || ( echo "ICU broken." ; /bin/false )
ICU_PLUGINS=$(OUT) $(LIBPATH_VAR)=$(PLUGLIB_INST)/lib:out/$(PLUGLIB)/lib $(PLUGLIB_INST)/bin/icuinfo -L || ( echo "Plugin broken." ; /bin/false )
@for prog in $(TESTPROG) ; \
do \
echo "# ICU_PLUGINS=$(OUT) $(LIBPATH_VAR)=$(PLUGLIB_INST)/lib:out/$(PLUGLIB)/lib out/$(PLUGLIB)/bin/$${prog}" ; \
ICU_PLUGINS=$(OUT) $(LIBPATH_VAR)=$(PLUGLIB_INST)/lib:out/$(PLUGLIB)/lib out/$(PLUGLIB)/bin/$${prog} || ( echo "$${prog} failed." ; exit 1 ) ; \
done
install-check: install-plugs
$(LIBPATH_VAR)=$(PLUGLIB_INST)/lib $(PLUGLIB_INST)/bin/icuinfo -L || ( echo "Plugin broken." ; /bin/false )
@for prog in $(TESTPROG) ; \
do \
echo "# $${prog}" ; \
$(LIBPATH_VAR)=$(PLUGLIB_INST)/lib out/$(PLUGLIB)/bin/$${prog} || ( echo "$${prog} against installed failed." ; exit 1 ) ; \
done
$(OUT)/$(PLUGLIB)/bin/$(TESTPROG): $(GLOUT)/$(PLUGLIB)/obj-$(OK) $(OUT)/$(PLUGLIB)/provider_version.h $(ALLDIRS)
@for prog in $(TESTPROG) ; \
do \
${call ECHO_COMPILE,$(shell $(PLUGLIB_ICU_CONFIG) --cxx --cxxflags --cppflags --ldflags) -o $(OUT)/$(PLUGLIB)/bin/$${prog} -I$(OUT)/$(PLUGLIB) $(TESTPROG_XTRA_OPTS) $(srcdir)/$${prog}.cpp} || exit 1 ; \
done
$(OUT)/%/lib/$(PLUGLIB_NAME): $(GLOUT)/%/obj-$(OK) $(PLUG_EXTRA_DEPS)
-mkdir -p $(OUT)/$*/lib
$(shell $(PLUGLIB_ICU_CONFIG) --cxx --cxxflags --cppflags --ldflags) $(PLUG_EXTRA_LDFLAGS) -shared -o $@ $(GLOUT)/$*/*.o $(PLUGLIB_AVAILABLE_DATA) $(PLUGLIB_AVAILABLE_STATICS)
# cp $@ $(C_INS)/r$*/lib/
$(OUT)/%/lib/$(LIBPROVIDER): $(GLOUT)/%/obj-$(OK)
-mkdir -p $(OUT)/$*/lib
echo copy includes
ar -rv $@ $(GLOUT)/$*/*.o
ranlib $@
## @@ build glu rename files
glurens: $(GLUREN_ICU)
# build single gluren.h
$(BUILD)/%/$(GLUREN_H): $(BUILD)/%/ok Makefile makegluren.sh
-mkdir -p $(BUILD)/$*/$(GLUREN)
env SRC="$(SRC)" SOURCE="$(SOURCE)" GLUE="$(GLUE)" ./makegluren.sh $@ $*
@fgrep -q OICU_ $@ || ( echo "Error: $@: no OICU_ symbols found. Removing gluren.h " ; rm -f $@ ; exit 1)
$(BUILD)/%/config/$(ICU_CONFIG): $(BUILD)/%/config/$(ICU_CONFIG_ORIG) icu-config.sed $(BUILD)/%/ok
sed -f icu-config.sed < $(BUILD)/$*/config/$(ICU_CONFIG_ORIG) > $(BUILD)/$*/config/$(ICU_CONFIG) && chmod a+rx $(BUILD)/$*/config/$(ICU_CONFIG)
# perform installation
$(INST)/%/ok: $(BUILD)/%/ok
echo $(SUBHEAD) $* "(backend) installing..."
echo "INST " "[" $* "]"
mkdir -p $(INST)/$*
-$(call LOG_COMPILE,$(BUILD)$*/ok.log,$(MAKE) $(MOPTS) -C $(BUILD)/$* install $(MAKE_INSTALL_XTRA_OPTS))
touch $@
# unpack ICU and patch
$(SRC)/%/ok: $(ICUS)/icu4c-%-src.tgz
-[ -d $(SRC)/$* ] && rm -rf $(SRC)/$*
@echo $(SUBHEAD) $* "(backend) unpacking..."
mkdir -p $(SRC)/$*
$(call LOG_COMPILE,$(SRC)/$*/unpack.log,( cd $(SRC)/$* && gunzip -d < $(TOP)/$(ICUS)/icu4c-$*-src.tgz | tar xvfp - ))
([ -f $(DOT)/patch/$* ] && patch -d $(SRC)/$* -p1 < $(DOT)/patch/$*) || true
touch $@
# config
$(BUILD)/%/config.status: $(SRC)/%/ok
@echo $(SUBHEAD) $* "(backend) configuring..."
-[ -d $(BUILD)/$* ] && rm -rf $(BUILD)/$*
mkdir -p $(BUILD)/$*
$(call LOG_COMPILE,$(BUILD)/$*/configure.log,( cd $(BUILD)/$* && env CFLAGS="$(CFLAGS) $(PBLD_EXTRA_FLAGS)" CXXFLAGS="$(CXXFLAGS) $(PBLD_EXTRA_FLAGS)" $(shell $(SUPERCONF) $(TOP)/$(SRC)/$*/$(SOURCE) $*) $(CONFIGURE_OPTS) --srcdir=$(TOP)/$(SRC)/$*/$(SOURCE) --prefix=$(TOP)/$(INST)/$* ))
# build
# note: regex had renaming problems, and spoof depends on regex. Nuke them.
$(BUILD)/%/ok: $(BUILD)/%/config.status
@echo $(SUBHEAD) $* "(backend) building.."
$(call LOG_COMPILE,$(BUILD)/$*/ok2.log,( $(MAKE) $(MOPTS) -C $(BUILD)/$* all $(MAKE_XTRA_OPTS) ))
@if [ ! -f $(BUILD)/$*/common/putil.$(SOBJ) ]; \
then \
echo re-unpacking $(BUILD)/$*/common ; \
( cd $(BUILD)/$*/common && ar xf ../lib/libsicuuc.a || echo could not unpack ../lib/libsicuuc.a ) ; \
echo re-unpacking $(BUILD)/$*/i18n ; \
( cd $(BUILD)/$*/i18n && ar xf ../lib/libsicui18n.a || echo could not unpack ../lib/libsicui18n.a ) ; \
fi
@if [ ! -f $(BUILD)/$*/common/putil.$(SOBJ) ]; \
then \
echo ERROR: still could not find $(BUILD)/$*/common/putil.$(SOBJ) - build may fail.; \
fi
-rm -f $(BUILD)/$*/i18n/uregex*.* $(BUILD)/$*/i18n/uspoof*.*o*
touch $@
info help:
@echo $(SUBHEAD) Provider Build
@echo "Targetting Provider against ICU $(PROVIDER_TARGET) ($(PLUGLIB), major $(PLUGLIB_MAJ))"
@echo "Available plugins: $(PROVIDER_AVAILABLE) ($(PLUGLIB_AVAILABLE))"
@echo "Available keywords:"
@for ver in $(PROVIDER_AVAILABLE); do \
echo " ...@provider=icu"`echo $$ver | ./icu2symver.sh`; \
done
@echo "Plugin library will be $(PLUGLIB_NAME)"
@echo
@echo Available ICU tarballs: $(ICU_TARBALLS)
@echo Available ICU versions: $(shell echo $(ICU_TARBALLS_VERS) | tr '_' '.')
$(OUT)/$(PLUGLIB)/provider_version.h: Makefile.local Makefile $(ALLDIRS)
@echo $(SUBHEAD) $(PLUGIN) "(plugin)" Generating $@ ..
@echo "/* Generated file. */" > $@
@echo "const char *provider_version[] = {" >> $@
@for ver in $(PROVIDER_AVAILABLE); do \
sym=`echo $$ver | ./icu2symver.sh` ; \
echo Version $$ver, Symbol $$sym ; \
echo "\"$$sym\"", >> $@ ; \
done
@echo " }; " >> $@
@echo "#define PROVIDER_COUNT (sizeof(provider_version)/sizeof(provider_version[0]))" >> $@
@echo >> $@
@echo $(SUBHEAD) $(PLUGIN) "(plugin)" Generated $@
#-- for the prototype

View file

@ -1,35 +0,0 @@
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (C) 2008-2012 IBM Corporation and Others. All Rights Reserved
# local definitions must go in Makefile.local
# example:
##
## These two are REQUIRED.
##
# The version of ICU you will build against (which API you will use). Note, 49.1 is required for collation support, and for date support.
# EXAMPLE: 49.1
PROVIDER_TARGET=49.1
# The versions of ICU you want to have available in the plugin. Space separated. Don't include the PROVIDER_TARGET version.
# EXAMPLE: 3.8.1 4.2.0.1
PROVIDER_AVAILABLE=3.8.1 4.2.0.1
##
## following are OPTIONAL
##
## debug options
#EXTRA_COMPILE_OPTS=-g
## configure options
#EXTRA_CONFIGURE_OPTS=--with-library-suffix=srl

View file

@ -1,146 +0,0 @@
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
*
* Copyright (C) 2009-2012, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
*/
#include <unicode/datefmt.h>
#include <unicode/udat.h>
#include <unicode/uclean.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/* String to use. */
const UDate stuff = 1299977771000.0L;
int err=0;
#include "provider_version.h"
#define LOCALE_COUNT 4
const char *locale[LOCALE_COUNT] = { "es_GU", "fr_AD", "et_AM", "en_IE" }; /* List of locales to test */
/**
* Set up ICU, print # of available collators
*/
void setup(UErrorCode &status) {
u_init(&status);
fprintf(stderr, "ICU %s init: %s\n", U_ICU_VERSION, u_errorName(status));
int32_t count;
const Locale *se = Calendar::getAvailableLocales(count);
fprintf(stderr, "# Calendars now available: %d,\t%s - %d providers expected.\n", count, u_errorName(status), (int32_t)PROVIDER_COUNT);
}
int main(int /* argc*/ , const char * /*argv*/ []) {
#if 0
// fprintf(stderr, "Warning: ICU %s doesn't support date providers. Need at least 49.\n", U_ICU_VERSION );
// return 0;
#else
UErrorCode status = U_ZERO_ERROR;
int diffs = 0;
int gbaddiffs =0;
UDateFormatStyle styles[] = { UDAT_FULL, UDAT_SHORT };
setup(status);
if(U_FAILURE(status)) return 1;
int expected = PROVIDER_COUNT;
for(uint32_t s=0;s<sizeof(styles)/sizeof(styles[0]);s++) {
for(int l=0;l<LOCALE_COUNT;l++) {
printf("\n");
char oldChars[200];
int32_t oldLen = -1;
for(int v=0;v<=expected;v++) {
// Construct the locale ID
char locID[200];
strcpy(locID, locale[l]);
if((v!=expected)) { // -1 = no version
strcat(locID, "@sp=icu");
strcat(locID, provider_version[v]);
}
printf("%18s : ", locID);
UErrorCode subStatus = U_ZERO_ERROR;
char outchars[200];
LocalPointer<Calendar> cal(Calendar::createInstance(Locale(locID), subStatus));
if(U_FAILURE(subStatus)) {
printf("ERR: %s\n", u_errorName(subStatus));
err++;
continue;
}
// int32_t len = udat_format(dat, stuff, outchars, 200, nullptr, &subStatus);
// //printf("\n");
//char utf8[200];
// u_strToUTF8(utf8, 200, nullptr, outchars, len, &subStatus);
sprintf(outchars, " cal: mindays=%d firstday=%d ", (int)cal->getMinimalDaysInFirstWeek(), (int)cal->getFirstDayOfWeek());
int32_t len = strlen(outchars);
if(oldLen!=len || memcmp(outchars,oldChars,len*sizeof(outchars[0]))) {
if(v==0) {
putchar(' ');
} else {
putchar ('!');
diffs++;
}
} else {
putchar ('=');
}
printf(" %s ", outchars);
for(int i=0;i<len;i++) {
if((i<oldLen)&&(outchars[i]!=oldChars[i])) {
diffs++;
printf("*", oldChars[i]);
} else {
printf(" ");
}
// // printf("U+%04X", (outchars[i]));
}
putchar('\n');
oldLen = len;
memcpy(oldChars, outchars, len*sizeof(oldChars[0]));
}
}
}
if(diffs==0) {
printf("ERROR: 0 differences found between platforms.. are the platforms installed? Try 'icuinfo -L'\n");
return 1;
} else {
printf("%d differences found among provider versions! Provider is working!\n", diffs);
}
// if(gbaddiffs>0) {
// printf("ERROR: %d diffs found between a collator and it's reopened (from shortstring) variant.\n", gbaddiffs);
// return 2;
// } else {
// printf("Collator and reopened (shortstring) are OK.\n");
// }
if(err) {
printf("%d errors - FAIL!\n", err);
return 1;
}
printf("Success!\n");
return 0;
#endif
}

View file

@ -1,61 +0,0 @@
#!/bin/bash
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (C) 2010-2012 IBM Corporation and Others, All Rights Reserved.
if [ $# -eq 1 ];
then
VERBOSE=1
else
VERBOSE=0
fi
function verbose()
{
if [ ${VERBOSE} -eq 1 ];
then
echo "$*"
else
echo -n .
fi
}
function c()
{
IN=$1
EXP=$2
OUT=`./icu2symver.sh $IN`
if [ "x${OUT}" != "x${EXP}" ];
then
echo "Error: \"${IN}\" -> \"${OUT}\", expected ${EXP}" >&2
exit 1
else
verbose "${IN} -> ${OUT}"
fi
OUT=`echo ${IN} | ./icu2symver.sh`
if [ "x${OUT}" != "x${EXP}" ];
then
echo "Error: \"${IN}\" -> \"${OUT}\", expected ${EXP} (via stream)" >&2
exit 1
else
verbose "${IN} -> ${OUT} (via stream)"
fi
}
c '3.6.2' '36'
c '1.0' '10'
c '4.8' '48'
c '4.8.1.1' '48'
c '4.0.2' '40'
c '4.1.2' '41'
c '49.1.2' '49'
c '49' '49'
c '50.0.3' '50'
c '51.0.0.1' '51'
echo " OK!"
exit 0

View file

@ -1,189 +0,0 @@
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
*
* Copyright (C) 2009-2012, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
*/
#include <unicode/coll.h>
#include <unicode/uclean.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/* String to use. */
const char16_t stuff[] = { 0x30BB, 0x0d4c, 0x53, 0x74, 0x75, 0x66, 0x66, 0x00 }; /* Stuff */
#include "provider_version.h"
#define LOCALE_COUNT 4
const char *locale[LOCALE_COUNT] = { "fi", "en_US", "ja", "ml" }; /* List of locales to test */
/**
* Set up ICU, print # of available collators
*/
void setup(UErrorCode &status) {
u_init(&status);
fprintf(stderr, "ICU %s init: %s\n", U_ICU_VERSION, u_errorName(status));
int32_t count;
StringEnumeration *se = Collator::getAvailableLocales();
count = se->count(status);
fprintf(stderr, "# Collators now available: %d,\t%s - %d providers expected.\n", count, u_errorName(status), (int32_t)PROVIDER_COUNT);
}
int main(int /* argc*/ , const char * /*argv*/ []) {
UErrorCode status = U_ZERO_ERROR;
int diffs = 0;
int gbaddiffs =0;
setup(status);
if(U_FAILURE(status)) return 1;
int expected = PROVIDER_COUNT;
for(int l=0;l<LOCALE_COUNT;l++) {
printf("\n");
uint8_t oldBytes[200];
int32_t oldLen = -1;
for(int v=0;v<=expected;v++) {
// Construct the locale ID
char locID[200];
strcpy(locID, locale[l]);
if((v!=expected)) { // -1 = no version
strcat(locID, "@sp=icu");
strcat(locID, provider_version[v]);
}
printf("%-28s = ", locID);
UErrorCode subStatus = U_ZERO_ERROR;
uint8_t bytes[200];
uint8_t bytesb[200];
#define USE_CXX 0
#if USE_CXX
Collator *col = Collator::createInstance(Locale(locID),subStatus);
if(U_FAILURE(subStatus)) {
printf("ERR: %s\n", u_errorName(subStatus));
continue;
}
int32_t len = col->getSortKey(stuff, -1, bytes, 200);
#else
#if 1
char xbuf2[200];
strcpy(xbuf2,"X/");
strcat(xbuf2,locID);
strcat(xbuf2,"/");
//printf(" -> %s\n", xbuf2);
UCollator *col = ucol_openFromShortString(xbuf2, false,nullptr, &subStatus);
#else
UCollator *col = ucol_open(locID, &subStatus);
#endif
if(U_FAILURE(subStatus)) {
printf("ERR: %s\n", u_errorName(subStatus));
continue;
}
char xbuf3[200];
{
int32_t def = ucol_getShortDefinitionString(col,locID/*nullptr*/,xbuf3,200,&subStatus);
if(U_FAILURE(subStatus)) {
printf("Err getting short string name: %s\n", u_errorName(subStatus));
} else {
printf(" --> %s\n", xbuf3);
}
}
int32_t len = ucol_getSortKey(col, stuff, -1, bytes, 200);
#endif
printf(" ");
int tdiffs=0;
for(int i=0;i<len;i++) {
if(i<oldLen&&bytes[i]!=oldBytes[i]) {
diffs++;
printf("*");
} else {
printf(" ");
}
printf("%02X", (0xFF&bytes[i]));
}
printf("\n");
char xbuf4[200];
UCollator *col2 = ucol_openFromShortString(xbuf3, false, nullptr, &subStatus);
if(U_FAILURE(subStatus)) {
printf("Err opening from new short string : %s\n", u_errorName(subStatus));
continue;
} else {
int32_t def4 = ucol_getShortDefinitionString(col,locID/*nullptr*/,xbuf4,200,&subStatus);
if(strcmp(xbuf4,xbuf3)) {
printf(" --> reopened = %s (%s)\n", xbuf4, u_errorName(subStatus));
}
}
int32_t len2 = ucol_getSortKey(col2, stuff, -1, bytesb, 200);
int baddiffs=0;
for(int i=0;i<len;i++) {
if(i<len&&bytes[i]!=bytesb[i]) {
baddiffs++;
printf("!");
} else {
// printf(" ");
}
// printf("%02X", (0xFF&bytesb[i]));
}
if(baddiffs>0) {
printf(" - ERR! Diffs from %s in %d places\n", xbuf2,baddiffs);
gbaddiffs+=baddiffs;
} else {
//printf(" OK.\n");
}
// printf("\n");
#if USE_CXX
delete col;
#else
ucol_close(col);
#endif
oldLen = len;
memcpy(oldBytes, bytes, len);
}
}
if(diffs==0) {
#if (U_ICU_VERSION_MAJOR_NUM < 49)
printf("ERROR: 0 differences found between platforms. ICU " U_ICU_VERSION " does not support collator plugins properly (not until 49)\n");
#else
printf("ERROR: 0 differences found between platforms.. are the platforms installed? Try 'icuinfo -L'\n");
#endif
return 1;
} else {
printf("%d differences found among provider versions!\n", diffs);
}
if(gbaddiffs>0) {
printf("ERROR: %d diffs found between a collator and it's reopened (from shortstring) variant.\n", gbaddiffs);
return 2;
} else {
printf("Collator and reopened (shortstring) are OK.\n");
}
printf("Success!\n");
return 0;
}

View file

@ -1,133 +0,0 @@
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
*
* Copyright (C) 2009-2012, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
*/
#include <unicode/datefmt.h>
#include <unicode/udat.h>
#include <unicode/uclean.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/* String to use. */
const UDate stuff = 1299977771000.0L;
#include "provider_version.h"
#define LOCALE_COUNT 4
const char *locale[LOCALE_COUNT] = { "fi", "en_US", "ja", "ml" }; /* List of locales to test */
/**
* Set up ICU, print # of available collators
*/
void setup(UErrorCode &status) {
u_init(&status);
fprintf(stderr, "ICU %s init: %s\n", U_ICU_VERSION, u_errorName(status));
// int32_t count;
// StringEnumeration *se = DateFormat::getAvailableLocales();
// count = se->count(status);
// fprintf(stderr, "# DateFormats now available: %d,\t%s - %d providers expected.\n", count, u_errorName(status), (int32_t)PROVIDER_COUNT);
}
int main(int /* argc*/ , const char * /*argv*/ []) {
#if (U_ICU_VERSION_MAJOR_NUM < 49)
fprintf(stderr, "Warning: ICU %s doesn't support date providers. Need at least 49.\n", U_ICU_VERSION );
return 0;
#else
UErrorCode status = U_ZERO_ERROR;
int diffs = 0;
int gbaddiffs =0;
UDateFormatStyle styles[] = { UDAT_FULL, UDAT_SHORT };
setup(status);
if(U_FAILURE(status)) return 1;
int expected = PROVIDER_COUNT;
for(uint32_t s=0;s<sizeof(styles)/sizeof(styles[0]);s++) {
for(int l=0;l<LOCALE_COUNT;l++) {
printf("\n");
char16_t oldChars[200];
int32_t oldLen = -1;
for(int v=0;v<=expected;v++) {
// Construct the locale ID
char locID[200];
strcpy(locID, locale[l]);
if((v!=expected)) { // -1 = no version
strcat(locID, "@sp=icu");
strcat(locID, provider_version[v]);
}
printf("%18s : ", locID);
UErrorCode subStatus = U_ZERO_ERROR;
char16_t outchars[200];
UDateFormat *dat = udat_open(styles[s],styles[s], locID, nullptr, -1, nullptr, 0, &subStatus);
if(U_FAILURE(subStatus)) {
printf("ERR: %s\n", u_errorName(subStatus));
continue;
}
int32_t len = udat_format(dat, stuff, outchars, 200, nullptr, &subStatus);
//printf("\n");
char utf8[200];
u_strToUTF8(utf8, 200, nullptr, outchars, len, &subStatus);
if(oldLen!=len || memcmp(outchars,oldChars,len*sizeof(outchars[0]))) {
putchar ('!');
diffs++;
} else {
putchar ('=');
}
printf(" %s ", utf8);
// for(int i=0;i<len;i++) {
// if((i<oldLen)&&(outchars[i]!=oldChars[i])) {
// diffs++;
// printf("*", oldChars[i]);
// } else {
// printf(" ");
// }
// // printf("U+%04X", (outchars[i]));
// }
putchar('\n');
udat_close(dat);
oldLen = len;
memcpy(oldChars, outchars, len*sizeof(oldChars[0]));
}
}
}
if(diffs==0) {
printf("ERROR: 0 differences found between platforms.. are the platforms installed? Try 'icuinfo -L'\n");
return 1;
} else {
printf("%d differences found among provider versions!\n", diffs);
}
// if(gbaddiffs>0) {
// printf("ERROR: %d diffs found between a collator and it's reopened (from shortstring) variant.\n", gbaddiffs);
// return 2;
// } else {
// printf("Collator and reopened (shortstring) are OK.\n");
// }
printf("Success!\n");
return 0;
#endif
}

View file

@ -1,6 +0,0 @@
#
# Copyright (C) 2017 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html
#
# Copyright (C) 2010 International Business Machines Corporation and Others. All Rights Reserved.
_coll_provider_plugin

View file

@ -1,38 +0,0 @@
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
*
* Copyright (C) 2009, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
*/
#include <icuglue/icuglue.h>
#include <unicode/coll.h>
#if defined ( ICUGLUE_VER )
//#error DEFINED!
#else
#define GLUE_VER(x) puts("Version " # x );
#include <stdio.h>
// generate list of versions
#include <icuglue/fe_verlist.h>
int main(int argc, const char *argv[]) {
printf("I'm on " U_ICU_VERSION " but i have modules for: \n");
for(int i=0;fe_verlist[i];i++) {
printf("%d: %s\n", i, fe_verlist[i]);
}
}
#endif

View file

@ -1,430 +0,0 @@
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
*
* Copyright (C) 2009-2012, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
*/
#define CAL_FE_DEBUG 1
#ifndef CAL_FE_DEBUG
#define CAL_FE_DEBUG 0
#endif
#if CAL_FE_DEBUG
#define debugfprintf(x) fflush(stderr),fflush(stdout),fprintf x,fflush(stderr),fflush(stdout)
#else
#define debugfprintf(x)
#endif
#include <icuglue/icuglue.h>
#include "unicode/ucal.h"
//#include <unicode/tblcoll.h>
#include "unicode/calendar.h"
#include <string.h>
#include <stdio.h>
#include "unicode/ustring.h"
#include "unicode/gregocal.h"
/**
* Macro to define the Calendar_glue_4_2 class
*/
#ifdef GLUE_VER
#error GLUE_VER is defined
#endif
#define GLUE_VER(x) class GLUE_SYM_V( Calendar, x ) : public Calendar { \
public: /* static create */ \
UCalendar *_this; GLUE_SYM_V( Calendar, x ) ( const Locale&, UErrorCode& ); \
private: \
virtual ~ GLUE_SYM_V ( Calendar, x) (); \
public: \
virtual void* getDynamicClassID() const; \
static void* getStaticClassID() ; \
/* overrides */ \
virtual UBool haveDefaultCentury() const; \
virtual UDate defaultCenturyStart() const ; \
virtual int32_t handleGetExtendedYear() ; \
virtual const char * getType() const ; \
virtual UBool inDaylightTime(UErrorCode& status) const ; \
virtual int32_t defaultCenturyStartYear() const ; \
virtual int32_t handleComputeMonthStart(int32_t eyear, int32_t month, UBool useMonth) const ; \
virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const ; \
virtual Calendar* clone() const; \
public: static int32_t countAvailable(); \
public: static int32_t appendAvailable(UnicodeString* strs, int32_t i, int32_t count); \
};
/** ==================================== The following code runs inside the 'target' version (i.e. old ICU) ========== **/
#if defined ( ICUGLUE_VER )
/* code for some version */
#include <icuglue/gluren.h>
#include "oicu.h"
#ifdef GLUE_VER
GLUE_VER( ICUGLUE_VER )
#endif
GLUE_SYM (Calendar ) :: GLUE_SYM(Calendar) ( const Locale& loc, UErrorCode& status ) :
Calendar(status), _this(nullptr)
{
_this = OICU_ucal_open(nullptr, -1, /*locale*/nullptr, UCAL_DEFAULT, &status);
// copy some things over
setMinimalDaysInFirstWeek(OICU_ucal_getAttribute(_this, UCAL_MINIMAL_DAYS_IN_FIRST_WEEK));
setFirstDayOfWeek((UCalendarDaysOfWeek)OICU_ucal_getAttribute(_this, UCAL_FIRST_DAY_OF_WEEK));
}
GLUE_SYM ( Calendar ) :: ~ GLUE_SYM(Calendar) () {
#if CAL_FE_DEBUG
fprintf(stderr, "VCF " ICUGLUE_VER_STR " ucal_close");
#endif
OICU_ucal_close(_this);
}
UBool GLUE_SYM ( Calendar ) :: haveDefaultCentury() const {
return false;
}
UDate GLUE_SYM ( Calendar ) :: defaultCenturyStart() const {
return 0L;
}
int32_t GLUE_SYM ( Calendar ) :: handleGetExtendedYear() {
return 0;
}
const char * GLUE_SYM ( Calendar ) :: getType() const {
return "dilbert";
}
UBool GLUE_SYM ( Calendar ) :: inDaylightTime(UErrorCode& status) const {
return false;
}
int32_t GLUE_SYM ( Calendar ) :: defaultCenturyStartYear() const {
return 2012;
}
int32_t GLUE_SYM ( Calendar ) :: handleComputeMonthStart(int32_t eyear, int32_t month, UBool useMonth) const {
return 0;
}
int32_t GLUE_SYM ( Calendar ) :: handleGetLimit(UCalendarDateFields field, ELimitType limitType) const {
return 1;
}
Calendar* GLUE_SYM ( Calendar ) :: clone() const {
return nullptr;
}
// DateFormat *
// GLUE_SYM ( DateFormat ) :: create(UDateFormatStyle timeStyle,
// UDateFormatStyle dateStyle,
// const char *locale,
// const char16_t *tzID,
// int32_t tzIDLength,
// const char16_t *pattern,
// int32_t patternLength,
// UErrorCode *status,
// const Locale &loc, const char */*ver*/) {
// // TODO: save version
// //char locBuf[200];
// //char kwvBuf[200];
// UDateFormat * uc = OICU_udat_open( timeStyle, dateStyle, locale,
// tzID,
// tzIDLength,
// pattern,
// patternLength,
// status);
// if(U_FAILURE(*status)) return nullptr; // TODO: ERR?
// DateFormat *c = new GLUE_SYM( DateFormat ) ( uc );
// #if CAL_FE_DEBUG
// fprintf(stderr, "VCF " ICUGLUE_VER_STR " udat_open=%s ->> %p\n", loc.getName(), (void*)c);
// #endif
// return c;
// }
int32_t GLUE_SYM ( Calendar ) :: countAvailable() {
int32_t count = OICU_udat_countAvailable();
return count;
}
int32_t GLUE_SYM ( Calendar ) :: appendAvailable(UnicodeString* strs, int32_t i, int32_t /*count*/) {
int avail = OICU_udat_countAvailable();
UErrorCode status = U_ZERO_ERROR;
OICU_u_init(&status);
#if CAL_FE_DEBUG
fprintf(stderr, "VCF " ICUGLUE_VER_STR " avail %d - init %s\n", avail, u_errorName(status));
#endif
for(int j=0;j<avail;j++) {
strs[i+j].append(OICU_udat_getAvailable(j));
strs[i+j].append("@sp=icu");
if(IS_OLD_VERSTR(ICUGLUE_VER_STR)) {
strs[i+j].append( ICUGLUE_VER_STR[OLD_VERSTR_MAJ] ); // X_y
strs[i+j].append( ICUGLUE_VER_STR[OLD_VERSTR_MIN] ); // x_Y
} else {
strs[i+j].append( ICUGLUE_VER_STR[NEW_VERSTR_MAJ] ); // Xy_
strs[i+j].append( ICUGLUE_VER_STR[NEW_VERSTR_MIN] ); // xY_
}
#if CAL_FE_DEBUG
{
char foo[999];
const char16_t *ss = strs[i+j].getTerminatedBuffer();
u_austrcpy(foo, ss);
fprintf(stderr, "VCF " ICUGLUE_VER_STR " appending [%d+%d=%d] <<%s>>\n", i, j, i+j, foo);
}
#endif
}
return OICU_ucol_countAvailable();
}
UOBJECT_DEFINE_RTTI_IMPLEMENTATION( GLUE_SYM( Calendar ) )
#else
/** ==================================== The following code runs inside the 'provider' version (i.e. current ICU) ========== **/
// #if (U_ICU_VERSION_MAJOR_NUM < 49)
// #define CAL_PROVIDER_UNSUPPORTED
// #endif
#ifndef CAL_PROVIDER_UNSUPPORTED
// define Collator_XX
#include "icuglue/glver.h"
#include "servloc.h"
// generate list of versions
static
#include <icuglue/fe_verlist.h>
class VersionCalendarFactory : public LocaleKeyFactory {
public:
VersionCalendarFactory();
virtual UObject* handleCreate(const Locale &loc, int32_t kind, const ICUService* service, UErrorCode& status) const;
// virtual Calendar *createFormat(UCalendarStyle timeStyle,
// UCalendarStyle dateStyle,
// const char *locale,
// const char16_t *tzID,
// int32_t tzIDLength,
// const char16_t *pattern,
// int32_t patternLength,
// UErrorCode *status);
virtual void* getDynamicClassID() const;
static void* getStaticClassID() ;
virtual const Hashtable* getSupportedIDs(UErrorCode& status) const;
private:
const UnicodeString *getSupportedIDs(int32_t &count, UErrorCode &status) const;
public:
virtual UObject*
create(const ICUServiceKey& key, const ICUService* service, UErrorCode& status) const ;
};
UOBJECT_DEFINE_RTTI_IMPLEMENTATION( VersionCalendarFactory )
UObject*
VersionCalendarFactory::create(const ICUServiceKey& key, const ICUService* service, UErrorCode& status) const {
// UnicodeString id;
// key.currentID(id);
// Locale l(id);
Locale l;
const LocaleKey& lkey = (LocaleKey&)key;
lkey.currentLocale(l);
debugfprintf((stderr, "VCalF::create() .. %s err=%s\n", (const char*)l.getName(), u_errorName(status)));
char kw[100];
int32_t kwlen = l.getKeywordValue("sp", kw, 100, status);
UObject *f;
if(kwlen>0) {
debugfprintf((stderr, "Trying for kw=%s\n", kw));
f = handleCreate(l, -1, service, status);
} else {
f = LocaleKeyFactory::create(key,service,status);
}
debugfprintf((stderr, "VCalF::create() .. = %p err=%s\n", (void*)f, u_errorName(status)));
return f;
}
VersionCalendarFactory::VersionCalendarFactory() :LocaleKeyFactory(LocaleKeyFactory::VISIBLE){
#if CAL_FE_DEBUG
printf("VCalF: hi! pid=%d, this=%p\n", getpid(), (void*)this);
#endif
}
UObject* VersionCalendarFactory::handleCreate(const Locale &loc, int32_t kind, const ICUService* service, UErrorCode& status) const {
//Locale loc(locale);
// pull off provider #
char provider[200];
#if CAL_FE_DEBUG
fprintf(stderr, "VCalF:CC %s\n", loc.getName());
#endif
int32_t len = loc.getKeywordValue("sp", provider, 200, status);
if(U_FAILURE(status)||len==0) return nullptr;
#if CAL_FE_DEBUG
fprintf(stderr, "VCalF:KWV> %s/%d\n", u_errorName(status), len);
#endif
provider[len]=0;
#if CAL_FE_DEBUG
fprintf(stderr, "VCalF:KWV %s\n", provider);
#endif
if(strncmp(provider,"icu",3)) return nullptr;
const char *icuver=provider+3;
#if CAL_FE_DEBUG
fprintf(stderr, "VCalF:ICUV %s\n", icuver);
#endif
#if defined(GLUE_VER)
#undef GLUE_VER
#endif
#define GLUE_VER(x) debugfprintf((stderr,"%c/%c|%c/%c\n", icuver[0],(#x)[0],icuver[1],(#x)[2])); if(CMP_VERSTR(icuver, (#x))) { Calendar *c = new glue ## Calendar ## x (loc, status); debugfprintf((stderr, "VCalF::CC %s -> %p\n", loc.getName(), c)); return c; }
#include "icuglue/glver.h"
#if CAL_FE_DEBUG
fprintf(stderr, "VCalF:CC %s failed\n", loc.getName());
#endif
return nullptr;
}
static const UnicodeString *gLocalesDate = nullptr;
static int32_t gLocCountDate = 0;
const Hashtable *VersionCalendarFactory::getSupportedIDs (UErrorCode& status) const {
// from coll.cpp
Hashtable *_ids = nullptr;
if (U_SUCCESS(status)) {
int32_t count = 0;
_ids = new Hashtable(status);
if (_ids) {
const UnicodeString * idlist = /* _delegate -> */ getSupportedIDs(count, status);
for (int i = 0; i < count; ++i) {
_ids->put(idlist[i], (void*)this, status);
if (U_FAILURE(status)) {
delete _ids;
_ids = nullptr;
return;
}
}
} else {
status = U_MEMORY_ALLOCATION_ERROR;
}
debugfprintf((stderr,"VCalF: hash=%p, count=%d, err=%s\n", (void*)_ids, count, u_errorName(status)));
}
return _ids;
}
const UnicodeString
*VersionCalendarFactory::getSupportedIDs(int32_t &count, UErrorCode &/*status*/) const {
if(gLocalesDate==nullptr) {
count = 0;
/* gather counts */
#if defined(GLUE_VER)
#undef GLUE_VER
#endif
#define GLUE_VER(x) count += glue ## Calendar ## x :: countAvailable();
#include "icuglue/glver.h"
#if CAL_FE_DEBUG
printf("VCalF: count=%d\n", count);
#endif
UnicodeString *strs = new UnicodeString[count];
int32_t i = 0;
#if defined(GLUE_VER)
#undef GLUE_VER
#endif
#define GLUE_VER(x) i += glue ## Calendar ## x :: appendAvailable(strs, i, count);
#include "icuglue/glver.h"
#if CAL_FE_DEBUG
printf("VCalF: appended count=%d\n", count);
#endif
gLocCountDate = count;
gLocalesDate = strs;
}
count = gLocCountDate;
return gLocalesDate;
}
/* Plugin Code */
#include <stdio.h>
#include <unicode/uversion.h>
static URegistryKey rkcal = nullptr;
void cal_provider_register(UErrorCode &status) {
debugfprintf((stderr, "about to register VCalF\n"));
rkcal = Calendar::registerFactory(new VersionCalendarFactory(), status);
debugfprintf((stderr, ".. registered VCalF, key=%p\n", (void*)rkcal));
}
void cal_provider_unregister(UErrorCode &status) {
Calendar::unregister(rkcal, status);
}
#else
/* no op- this ICU doesn't support date providers */
void cal_provider_register(UErrorCode &) {
// not supported
}
void cal_provider_unregister(UErrorCode &) {
// not supported
}
#endif
/* Plugin- only ICU 4.4+ */
#if (U_ICU_VERSION_MAJOR_NUM > 4) || ((U_ICU_VERSION_MAJOR_NUM==4)&&(U_ICU_VERSION_MINOR_NUM>3))
#include "unicode/icuplug.h"
U_CAPI UPlugTokenReturn U_EXPORT2 cal_provider_plugin (UPlugData *data, UPlugReason reason, UErrorCode *status);
U_CAPI UPlugTokenReturn U_EXPORT2 cal_provider_plugin (UPlugData *data, UPlugReason reason, UErrorCode *status)
{
switch(reason) {
case UPLUG_REASON_QUERY:
uplug_setPlugName(data, "Calendar Provider Plugin");
uplug_setPlugLevel(data, UPLUG_LEVEL_HIGH);
break;
case UPLUG_REASON_LOAD:
cal_provider_register(*status);
break;
case UPLUG_REASON_UNLOAD:
cal_provider_unregister(*status);
break;
default:
break; /* not handled */
}
return UPLUG_TOKEN;
}
#else
/*
Note: this ICU version must explicitly call 'cal_provider_plugin'
*/
#endif /* plugin */
#endif /* provider side (vs target) */

View file

@ -1,516 +0,0 @@
// © 2017 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
*
* Copyright (C) 2009-2012, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
*/
#ifndef COLL_FE_DEBUG
#define COLL_FE_DEBUG 0
#endif
#include <icuglue/icuglue.h>
#include <unicode/coll.h>
//#include <unicode/tblcoll.h>
#include <unicode/ucol.h>
#include <string.h>
#include <stdio.h>
#include "unicode/ustring.h"
#if COLL_FE_DEBUG
#define debugfprintf(x) fprintf x
#else
#define debugfprintf(x)
#endif
/*
* Before ICU 50.0.2 (50m2) - there was a different collator signature.
* see: ticket:9460 ticket:9346
*/
#if (U_ICU_VERSION_MAJOR_NUM < 50) || ((U_ICU_VERSION_MAJOR_NUM==50)&&(U_ICU_VERSION_MINOR_NUM==0)&&(U_ICU_VERSION_PATCHLEVEL_NUM<2))
#define PRE_50_0_2_COLLATOR
#define CONST_BEFORE_50_0_2 const
#define CONST_AFTER_50_0_2
#define REF_AFTER_50_0_2
#else
/* "current" API */
#define CONST_BEFORE_50_0_2
#define CONST_AFTER_50_0_2 const
#define REF_AFTER_50_0_2 &
#endif
/**
* Macro to define the Collator_glue_4_2 class
*/
#define GLUE_VER(x) class GLUE_SYM_V( Collator, x ) : public Collator { \
\
public: static Collator *create(const Locale &loc, const char *ver); \
private: UCollator *_this; GLUE_SYM_V( Collator, x ) ( UCollator* tn ) : _this(tn){} \
virtual ~ GLUE_SYM_V ( Collator, x) (); \
public: \
virtual void* getDynamicClassID() const; \
static void* getStaticClassID() ; \
virtual Collator* clone() const; \
virtual UCollationResult compare(const UnicodeString&, const UnicodeString&, UErrorCode&) const; \
virtual UCollationResult compare(const UnicodeString&, const UnicodeString&, int32_t, UErrorCode&) const; \
virtual UCollationResult compare(const char16_t*, int32_t, const char16_t*, int32_t, UErrorCode&) const; \
virtual CollationKey& getCollationKey(const UnicodeString&, CollationKey&, UErrorCode&) const; \
virtual CollationKey& getCollationKey(const char16_t*, int32_t, CollationKey&, UErrorCode&) const; \
virtual int32_t hashCode() const; \
virtual CONST_BEFORE_50_0_2 Locale getLocale(ULocDataLocaleType, UErrorCode&) const; \
virtual ECollationStrength getStrength() const; \
virtual void setStrength(ECollationStrength); \
virtual void getVersion(uint8_t*) const; \
virtual void setAttribute(UColAttribute, UColAttributeValue, UErrorCode&) ; \
virtual UColAttributeValue getAttribute(UColAttribute, UErrorCode&) CONST_AFTER_50_0_2; \
virtual uint32_t setVariableTop(const char16_t*, int32_t, UErrorCode&); \
virtual uint32_t setVariableTop(const UnicodeString REF_AFTER_50_0_2, UErrorCode&); \
virtual void setVariableTop(uint32_t, UErrorCode&); \
virtual uint32_t getVariableTop(UErrorCode&) const; \
virtual Collator* safeClone() CONST_AFTER_50_0_2 ; \
virtual int32_t getSortKey(const UnicodeString&, uint8_t*, int32_t) const; \
virtual int32_t getSortKey(const char16_t*, int32_t, uint8_t*, int32_t) const; \
public: static int32_t countAvailable(); \
public: static int32_t appendAvailable(UnicodeString* strs, int32_t i, int32_t count); \
public: virtual int32_t internalGetShortDefinitionString(const char *locale, char *buffer, int32_t capacity, UErrorCode &status) const; \
};
/** ==================================== The following code runs inside the 'target' version (i.e. old ICU) ========== **/
#if defined ( ICUGLUE_VER )
// these from tblcoll.h
static Collator::ECollationStrength _getECollationStrength(
const UCollationStrength &strength)
{
switch (strength)
{
case UCOL_PRIMARY :
return Collator::PRIMARY;
case UCOL_SECONDARY :
return Collator::SECONDARY;
case UCOL_TERTIARY :
return Collator::TERTIARY;
case UCOL_QUATERNARY :
return Collator::QUATERNARY;
default :
return Collator::IDENTICAL;
}
}
static UCollationStrength _getUCollationStrength(
const Collator::ECollationStrength &strength)
{
switch (strength)
{
case Collator::PRIMARY :
return UCOL_PRIMARY;
case Collator::SECONDARY :
return UCOL_SECONDARY;
case Collator::TERTIARY :
return UCOL_TERTIARY;
case Collator::QUATERNARY :
return UCOL_QUATERNARY;
default :
return UCOL_IDENTICAL;
}
}
/* code for some version */
#include <icuglue/gluren.h>
#include "oicu.h"
/* Expand GLUE_VER to define the class */
#ifdef GLUE_VER
GLUE_VER( ICUGLUE_VER )
#endif
GLUE_SYM ( Collator ) :: ~ GLUE_SYM(Collator) () {
#if COLL_FE_DEBUG
fprintf(stderr, "VCF " ICUGLUE_VER_STR " ucol_close");
#endif
OICU_ucol_close(_this);
}
#if 0
U_CFUNC int32_t U_CALLCONV
GLUE_SYM ( glue_calcSortKey) (const UCollator *coll,
const char16_t *source,
int32_t sourceLength,
uint8_t **result,
uint32_t resultLength,
UBool allocateSKBuffer,
UErrorCode *status);
#endif
Collator *
GLUE_SYM ( Collator ) :: create (const Locale &loc, const char */*ver*/) {
// TODO: save 'ver' off.
UErrorCode status = U_ZERO_ERROR;
char locBuf[200];
char kwvBuf[200];
int32_t len = loc.getKeywordValue("collation", kwvBuf, 200, status);
strcpy(locBuf,loc.getBaseName());
if(len>0) {
strcat(locBuf,"@collator=");
strcat(locBuf,kwvBuf);
}
UCollator * uc = OICU_ucol_open( locBuf, status);
if(U_FAILURE(status)) return nullptr; // TODO: ERR?
Collator *c = new GLUE_SYM( Collator ) ( uc );
#if COLL_FE_DEBUG
fprintf(stderr, "VCF " ICUGLUE_VER_STR " ucol_open=%s ->> %p\n", locBuf, c);
#endif
return c;
}
UOBJECT_DEFINE_RTTI_IMPLEMENTATION( GLUE_SYM( Collator ) )
Collator* GLUE_SYM ( Collator ) :: clone() const {
UErrorCode status = U_ZERO_ERROR;
#if COLL_FE_DEBUG
fprintf(stderr, "VCF " ICUGLUE_VER_STR " clone %p -> " , this);
#endif
UCollator *clc = OICU_ucol_safeClone( _this, nullptr, 0, &status);
#if COLL_FE_DEBUG
fprintf(stderr, "VCF " ICUGLUE_VER_STR " .. safeclone %s _this %p-> %p " , u_errorName(status), _this, clc);
#endif
if(U_FAILURE(status)||clc==nullptr) return nullptr;
Collator *c = new GLUE_SYM( Collator ) ( clc );
#if COLL_FE_DEBUG
fprintf(stderr, "VCF " ICUGLUE_VER_STR " .. wrap(%p) -> %p\n", clc, c);
#endif
return c;
}
UCollationResult GLUE_SYM ( Collator ) :: compare(const UnicodeString&, const UnicodeString&, UErrorCode&) const {
return (UCollationResult)0;
}
UCollationResult GLUE_SYM ( Collator ) :: compare(const UnicodeString&, const UnicodeString&, int32_t, UErrorCode&) const {
return (UCollationResult)0;
}
UCollationResult GLUE_SYM ( Collator ) :: compare(const char16_t* s, int32_t sl, const char16_t* d , int32_t dl, UErrorCode&/*e*/ ) const {
return OICU_ucol_strcoll(_this, s, sl, d, dl);
}
#include "unicode/sortkey.h"
static CollationKey kk;
CollationKey& GLUE_SYM ( Collator ) :: getCollationKey(const UnicodeString&, CollationKey&, UErrorCode&) const {
//#if COLL_FE_DEBUG
fprintf(stderr, "VCF " ICUGLUE_VER_STR " GCK - notimp");
//#endif
return kk;
}
CollationKey& GLUE_SYM ( Collator ) :: getCollationKey(const char16_t*, int32_t, CollationKey&, UErrorCode&) const {
fprintf(stderr, "VCF " ICUGLUE_VER_STR " GKK2 - notimp");
return kk;
}
int32_t GLUE_SYM ( Collator ) :: hashCode() const {
return 0;
}
CONST_BEFORE_50_0_2 Locale GLUE_SYM ( Collator ) :: getLocale(ULocDataLocaleType, UErrorCode&) const {
return Locale();
}
Collator::ECollationStrength
GLUE_SYM ( Collator ) :: getStrength() const {
return _getECollationStrength(OICU_ucol_getStrength(_this));
}
void GLUE_SYM ( Collator ) :: setStrength(ECollationStrength s) {
OICU_ucol_setStrength(_this, _getUCollationStrength(s));
}
void GLUE_SYM ( Collator ) :: getVersion(uint8_t*) const {
}
void GLUE_SYM ( Collator ) :: setAttribute(UColAttribute, UColAttributeValue, UErrorCode&) {
}
UColAttributeValue GLUE_SYM ( Collator ) :: getAttribute(UColAttribute, UErrorCode&) CONST_AFTER_50_0_2 {
return (UColAttributeValue)0;
}
uint32_t GLUE_SYM ( Collator ) :: setVariableTop(const char16_t*, int32_t, UErrorCode&) {
return 0;
}
uint32_t GLUE_SYM ( Collator ) :: setVariableTop(const UnicodeString REF_AFTER_50_0_2, UErrorCode&) {
return 0;
}
void GLUE_SYM ( Collator ) :: setVariableTop(uint32_t, UErrorCode&) {
}
uint32_t GLUE_SYM ( Collator ) :: getVariableTop(UErrorCode&) const {
return 0;
}
Collator* GLUE_SYM ( Collator ) :: safeClone() CONST_AFTER_50_0_2 {
return clone();
}
int32_t GLUE_SYM ( Collator ) :: getSortKey(const UnicodeString& s, uint8_t*buf, int32_t len) const {
#if COLL_FE_DEBUG
fprintf(stderr, "VCF " ICUGLUE_VER_STR " GSK");
#endif
return getSortKey(s.getBuffer(),s.length(), buf, len);
}
int32_t GLUE_SYM ( Collator ) :: getSortKey(const char16_t*s, int32_t l, uint8_t*d, int32_t b) const {
#if COLL_FE_DEBUG
fprintf(stderr, "VCF " ICUGLUE_VER_STR " GKS");
#endif
return OICU_ucol_getSortKey(_this, s,l,d,b);
}
int32_t GLUE_SYM (Collator ) :: internalGetShortDefinitionString(const char *locale, char *buffer, int32_t capacity, UErrorCode &status) const {
if(U_FAILURE(status)) return 0;
int32_t intRes = OICU_ucol_getShortDefinitionString(_this, locale, buffer, capacity, &status);
int32_t newRes = (intRes += 7); /* _PICU38 */
int32_t remainCap = capacity - newRes;
if(remainCap < 0 && U_SUCCESS(status)) {
status = U_BUFFER_OVERFLOW_ERROR; /* ran out of space on our watch */
}
if(U_SUCCESS(status)) {
char *p = buffer+strlen(buffer);
strncat(p,"_PICU",5);
p +=5 ;
CPY_VERSTR(p, ICUGLUE_VER_STR);
p +=2;
if(remainCap>0) {
*(p++)=0;
}
}
return newRes;
}
int32_t GLUE_SYM ( Collator ) :: countAvailable() {
int32_t count = OICU_ucol_countAvailable();
return count;
}
int32_t GLUE_SYM ( Collator ) :: appendAvailable(UnicodeString* strs, int32_t i, int32_t /*count*/) {
int avail = OICU_ucol_countAvailable();
UErrorCode status = U_ZERO_ERROR;
OICU_u_init(&status);
#if COLL_FE_DEBUG
fprintf(stderr, "VCF " ICUGLUE_VER_STR " avail %d - init %s\n", avail, u_errorName(status));
#endif
for(int j=0;j<avail;j++) {
strs[i+j].append(OICU_ucol_getAvailable(j));
strs[i+j].append("@sp=icu");
if(IS_OLD_VERSTR(ICUGLUE_VER_STR)) {
strs[i+j].append( ICUGLUE_VER_STR[OLD_VERSTR_MAJ] ); // X_y
strs[i+j].append( ICUGLUE_VER_STR[OLD_VERSTR_MIN] ); // x_Y
} else {
strs[i+j].append( ICUGLUE_VER_STR[NEW_VERSTR_MAJ] ); // Xy_
strs[i+j].append( ICUGLUE_VER_STR[NEW_VERSTR_MIN] ); // xY_
}
#if COLL_FE_DEBUG
{
char foo[999];
const char16_t *ss = strs[i+j].getTerminatedBuffer();
u_austrcpy(foo, ss);
debugfprintf((stderr, "VCF " ICUGLUE_VER_STR " appending [%d+%d=%d] <<%s>>\n", i, j, i+j, foo));
}
#endif
}
return OICU_ucol_countAvailable();
}
#else
/** ==================================== The following code runs inside the 'provider' version (i.e. current ICU) ========== **/
// define Collator_XX
#include "icuglue/glver.h"
// generate list of versions
static
#include <icuglue/fe_verlist.h>
class VersionCollatorFactory : public CollatorFactory {
public:
virtual Collator *createCollator(const Locale &loc);
virtual const UnicodeString *getSupportedIDs(int32_t &count, UErrorCode &status);
virtual void* getDynamicClassID() const;
static void* getStaticClassID() ;
};
UOBJECT_DEFINE_RTTI_IMPLEMENTATION( VersionCollatorFactory )
Collator *VersionCollatorFactory::createCollator(const Locale &loc) {
// pull off provider #
char provider[200];
UErrorCode status = U_ZERO_ERROR;
#if COLL_FE_DEBUG
fprintf(stderr, "VCF:CC %s\n", loc.getName());
#endif
int32_t len = loc.getKeywordValue("sp", provider, 200, status);
if(U_FAILURE(status)||len==0) return nullptr;
#if COLL_FE_DEBUG
fprintf(stderr, "VCF:KWV> %s/%d\n", u_errorName(status), len);
#endif
provider[len]=0;
#if COLL_FE_DEBUG
fprintf(stderr, "VCF:KWV %s\n", provider);
#endif
if(strncmp(provider,"icu",3)) return nullptr;
const char *icuver=provider+3;
#if COLL_FE_DEBUG
fprintf(stderr, "VCF:ICUV %s\n", icuver);
#endif
#if defined(GLUE_VER)
#undef GLUE_VER
#endif
#define GLUE_VER(x) \
debugfprintf((stderr,"%c/%c|%c/%c\n", icuver[0],(#x)[0],icuver[1],(#x)[2])); \
if(CMP_VERSTR(icuver, (#x))) { \
Collator *c = glue ## Collator ## x :: create(loc, icuver); \
debugfprintf((stderr, "VCF::CC %s -> %p\n", loc.getName(), c)); \
return c; \
}
#include "icuglue/glver.h"
#if COLL_FE_DEBUG
fprintf(stderr, "VCF:CC %s failed\n", loc.getName());
#endif
return nullptr;
}
static const UnicodeString *gLocales = nullptr;
static int32_t gLocCount = 0;
const UnicodeString
*VersionCollatorFactory::getSupportedIDs(int32_t &count, UErrorCode &/*status*/) {
if(gLocales==nullptr) {
count = 0;
/* gather counts */
#if defined(GLUE_VER)
#undef GLUE_VER
#endif
#define GLUE_VER(x) count += glue ## Collator ## x :: countAvailable();
#include "icuglue/glver.h"
#if COLL_FE_DEBUG
printf("VCF: count=%d\n", count);
#endif
UnicodeString *strs = new UnicodeString[count];
int32_t i = 0;
#if defined(GLUE_VER)
#undef GLUE_VER
#endif
#define GLUE_VER(x) i += glue ## Collator ## x :: appendAvailable(strs, i, count);
#include "icuglue/glver.h"
#if COLL_FE_DEBUG
printf("VCF: appended count=%d\n", count);
#endif
gLocCount = count;
gLocales = strs;
}
count = gLocCount;
return gLocales;
}
/* Plugin Code */
#include <stdio.h>
#include <unicode/uversion.h>
static URegistryKey rk = nullptr;
void coll_provider_register(UErrorCode &status) {
rk = Collator::registerFactory(new VersionCollatorFactory(), status);
}
void coll_provider_unregister(UErrorCode &status) {
Collator::unregister(rk, status);
}
/* Plugin- only ICU 4.4+ */
#if (U_ICU_VERSION_MAJOR_NUM > 4) || ((U_ICU_VERSION_MAJOR_NUM==4)&&(U_ICU_VERSION_MINOR_NUM>3))
#include "unicode/icuplug.h"
U_CAPI UPlugTokenReturn U_EXPORT2 coll_provider_plugin (UPlugData *data, UPlugReason reason, UErrorCode *status);
U_CAPI UPlugTokenReturn U_EXPORT2 coll_provider_plugin (UPlugData *data, UPlugReason reason, UErrorCode *status)
{
switch(reason) {
case UPLUG_REASON_QUERY:
uplug_setPlugName(data, "Collation Provider Plugin");
uplug_setPlugLevel(data, UPLUG_LEVEL_HIGH);
break;
case UPLUG_REASON_LOAD:
coll_provider_register(*status);
break;
case UPLUG_REASON_UNLOAD:
coll_provider_unregister(*status);
break;
default:
break; /* not handled */
}
return UPLUG_TOKEN;
}
#else
/*
Note: this ICU version must explicitly call 'coll_provider_plugin'
*/
#endif /* plugin */
#endif /* provider side (vs target) */

Some files were not shown because too many files have changed in this diff Show more