texlive[46290] Build/source/libs: icu-60.2
commits+karl at tug.org
commits+karl at tug.org
Fri Jan 12 19:35:35 CET 2018
Revision: 46290
http://tug.org/svn/texlive?view=revision&revision=46290
Author: karl
Date: 2018-01-12 19:35:28 +0100 (Fri, 12 Jan 2018)
Log Message:
-----------
icu-60.2
Modified Paths:
--------------
trunk/Build/source/libs/README
trunk/Build/source/libs/icu/ChangeLog
trunk/Build/source/libs/icu/TLpatches/TL-Changes
trunk/Build/source/libs/icu/TLpatches/patch-14-xopen
trunk/Build/source/libs/icu/TLpatches/patch-16-putil
trunk/Build/source/libs/icu/TLpatches/patch-17-cygwin-no-w32api
trunk/Build/source/libs/icu/TLpatches/patch-19-netbsd
trunk/Build/source/libs/icu/configure
trunk/Build/source/libs/icu/icu-src/APIChangeReport.html
trunk/Build/source/libs/icu/icu-src/LICENSE
trunk/Build/source/libs/icu/icu-src/license.html
trunk/Build/source/libs/icu/icu-src/readme.html
trunk/Build/source/libs/icu/icu-src/source/Doxyfile.in
trunk/Build/source/libs/icu/icu-src/source/Makefile.in
trunk/Build/source/libs/icu/icu-src/source/allinone/allinone.sln
trunk/Build/source/libs/icu/icu-src/source/allinone/icucheck.bat
trunk/Build/source/libs/icu/icu-src/source/common/Makefile.in
trunk/Build/source/libs/icu/icu-src/source/common/appendable.cpp
trunk/Build/source/libs/icu/icu-src/source/common/bmpset.cpp
trunk/Build/source/libs/icu/icu-src/source/common/bmpset.h
trunk/Build/source/libs/icu/icu-src/source/common/brkeng.cpp
trunk/Build/source/libs/icu/icu-src/source/common/brkeng.h
trunk/Build/source/libs/icu/icu-src/source/common/brkiter.cpp
trunk/Build/source/libs/icu/icu-src/source/common/bytestream.cpp
trunk/Build/source/libs/icu/icu-src/source/common/bytestrie.cpp
trunk/Build/source/libs/icu/icu-src/source/common/bytestriebuilder.cpp
trunk/Build/source/libs/icu/icu-src/source/common/bytestrieiterator.cpp
trunk/Build/source/libs/icu/icu-src/source/common/caniter.cpp
trunk/Build/source/libs/icu/icu-src/source/common/chariter.cpp
trunk/Build/source/libs/icu/icu-src/source/common/charstr.cpp
trunk/Build/source/libs/icu/icu-src/source/common/charstr.h
trunk/Build/source/libs/icu/icu-src/source/common/cmemory.h
trunk/Build/source/libs/icu/icu-src/source/common/common.vcxproj
trunk/Build/source/libs/icu/icu-src/source/common/common.vcxproj.filters
trunk/Build/source/libs/icu/icu-src/source/common/cpputils.h
trunk/Build/source/libs/icu/icu-src/source/common/cstr.cpp
trunk/Build/source/libs/icu/icu-src/source/common/cstr.h
trunk/Build/source/libs/icu/icu-src/source/common/cstring.h
trunk/Build/source/libs/icu/icu-src/source/common/cwchar.h
trunk/Build/source/libs/icu/icu-src/source/common/dictbe.cpp
trunk/Build/source/libs/icu/icu-src/source/common/dictbe.h
trunk/Build/source/libs/icu/icu-src/source/common/dictionarydata.cpp
trunk/Build/source/libs/icu/icu-src/source/common/dictionarydata.h
trunk/Build/source/libs/icu/icu-src/source/common/dtintrv.cpp
trunk/Build/source/libs/icu/icu-src/source/common/errorcode.cpp
trunk/Build/source/libs/icu/icu-src/source/common/filteredbrk.cpp
trunk/Build/source/libs/icu/icu-src/source/common/filterednormalizer2.cpp
trunk/Build/source/libs/icu/icu-src/source/common/hash.h
trunk/Build/source/libs/icu/icu-src/source/common/icuplug.cpp
trunk/Build/source/libs/icu/icu-src/source/common/icuplugimp.h
trunk/Build/source/libs/icu/icu-src/source/common/listformatter.cpp
trunk/Build/source/libs/icu/icu-src/source/common/loadednormalizer2impl.cpp
trunk/Build/source/libs/icu/icu-src/source/common/localsvc.h
trunk/Build/source/libs/icu/icu-src/source/common/locavailable.cpp
trunk/Build/source/libs/icu/icu-src/source/common/locbased.cpp
trunk/Build/source/libs/icu/icu-src/source/common/locbased.h
trunk/Build/source/libs/icu/icu-src/source/common/locdispnames.cpp
trunk/Build/source/libs/icu/icu-src/source/common/locdspnm.cpp
trunk/Build/source/libs/icu/icu-src/source/common/locid.cpp
trunk/Build/source/libs/icu/icu-src/source/common/loclikely.cpp
trunk/Build/source/libs/icu/icu-src/source/common/locmap.h
trunk/Build/source/libs/icu/icu-src/source/common/locresdata.cpp
trunk/Build/source/libs/icu/icu-src/source/common/locutil.cpp
trunk/Build/source/libs/icu/icu-src/source/common/locutil.h
trunk/Build/source/libs/icu/icu-src/source/common/messageimpl.h
trunk/Build/source/libs/icu/icu-src/source/common/messagepattern.cpp
trunk/Build/source/libs/icu/icu-src/source/common/msvcres.h
trunk/Build/source/libs/icu/icu-src/source/common/mutex.h
trunk/Build/source/libs/icu/icu-src/source/common/norm2_nfc_data.h
trunk/Build/source/libs/icu/icu-src/source/common/norm2allmodes.h
trunk/Build/source/libs/icu/icu-src/source/common/normalizer2.cpp
trunk/Build/source/libs/icu/icu-src/source/common/normalizer2impl.cpp
trunk/Build/source/libs/icu/icu-src/source/common/normalizer2impl.h
trunk/Build/source/libs/icu/icu-src/source/common/normlzr.cpp
trunk/Build/source/libs/icu/icu-src/source/common/parsepos.cpp
trunk/Build/source/libs/icu/icu-src/source/common/patternprops.cpp
trunk/Build/source/libs/icu/icu-src/source/common/patternprops.h
trunk/Build/source/libs/icu/icu-src/source/common/pluralmap.cpp
trunk/Build/source/libs/icu/icu-src/source/common/pluralmap.h
trunk/Build/source/libs/icu/icu-src/source/common/propname.cpp
trunk/Build/source/libs/icu/icu-src/source/common/propname.h
trunk/Build/source/libs/icu/icu-src/source/common/propname_data.h
trunk/Build/source/libs/icu/icu-src/source/common/propsvec.h
trunk/Build/source/libs/icu/icu-src/source/common/punycode.cpp
trunk/Build/source/libs/icu/icu-src/source/common/punycode.h
trunk/Build/source/libs/icu/icu-src/source/common/putil.cpp
trunk/Build/source/libs/icu/icu-src/source/common/putilimp.h
trunk/Build/source/libs/icu/icu-src/source/common/rbbi.cpp
trunk/Build/source/libs/icu/icu-src/source/common/rbbidata.cpp
trunk/Build/source/libs/icu/icu-src/source/common/rbbidata.h
trunk/Build/source/libs/icu/icu-src/source/common/rbbinode.cpp
trunk/Build/source/libs/icu/icu-src/source/common/rbbinode.h
trunk/Build/source/libs/icu/icu-src/source/common/rbbirb.cpp
trunk/Build/source/libs/icu/icu-src/source/common/rbbirb.h
trunk/Build/source/libs/icu/icu-src/source/common/rbbirpt.h
trunk/Build/source/libs/icu/icu-src/source/common/rbbiscan.cpp
trunk/Build/source/libs/icu/icu-src/source/common/rbbiscan.h
trunk/Build/source/libs/icu/icu-src/source/common/rbbisetb.cpp
trunk/Build/source/libs/icu/icu-src/source/common/rbbisetb.h
trunk/Build/source/libs/icu/icu-src/source/common/rbbistbl.cpp
trunk/Build/source/libs/icu/icu-src/source/common/rbbitblb.cpp
trunk/Build/source/libs/icu/icu-src/source/common/rbbitblb.h
trunk/Build/source/libs/icu/icu-src/source/common/resbund.cpp
trunk/Build/source/libs/icu/icu-src/source/common/resbund_cnv.cpp
trunk/Build/source/libs/icu/icu-src/source/common/resource.cpp
trunk/Build/source/libs/icu/icu-src/source/common/resource.h
trunk/Build/source/libs/icu/icu-src/source/common/ruleiter.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ruleiter.h
trunk/Build/source/libs/icu/icu-src/source/common/schriter.cpp
trunk/Build/source/libs/icu/icu-src/source/common/serv.cpp
trunk/Build/source/libs/icu/icu-src/source/common/serv.h
trunk/Build/source/libs/icu/icu-src/source/common/servlk.cpp
trunk/Build/source/libs/icu/icu-src/source/common/servlkf.cpp
trunk/Build/source/libs/icu/icu-src/source/common/servloc.h
trunk/Build/source/libs/icu/icu-src/source/common/servls.cpp
trunk/Build/source/libs/icu/icu-src/source/common/servnotf.cpp
trunk/Build/source/libs/icu/icu-src/source/common/servnotf.h
trunk/Build/source/libs/icu/icu-src/source/common/servrbf.cpp
trunk/Build/source/libs/icu/icu-src/source/common/servslkf.cpp
trunk/Build/source/libs/icu/icu-src/source/common/sharedobject.cpp
trunk/Build/source/libs/icu/icu-src/source/common/sharedobject.h
trunk/Build/source/libs/icu/icu-src/source/common/simpleformatter.cpp
trunk/Build/source/libs/icu/icu-src/source/common/sprpimpl.h
trunk/Build/source/libs/icu/icu-src/source/common/stringpiece.cpp
trunk/Build/source/libs/icu/icu-src/source/common/stringtriebuilder.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uarrsort.h
trunk/Build/source/libs/icu/icu-src/source/common/uassert.h
trunk/Build/source/libs/icu/icu-src/source/common/ubidi_props.h
trunk/Build/source/libs/icu/icu-src/source/common/ubidi_props_data.h
trunk/Build/source/libs/icu/icu-src/source/common/ubidiimp.h
trunk/Build/source/libs/icu/icu-src/source/common/ubrk.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ubrkimpl.h
trunk/Build/source/libs/icu/icu-src/source/common/ucase.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucase.h
trunk/Build/source/libs/icu/icu-src/source/common/ucase_props_data.h
trunk/Build/source/libs/icu/icu-src/source/common/ucasemap.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucasemap_titlecase_brkiter.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uchar_props_data.h
trunk/Build/source/libs/icu/icu-src/source/common/ucharstrie.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucharstriebuilder.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucharstrieiterator.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uchriter.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucln.h
trunk/Build/source/libs/icu/icu-src/source/common/ucln_cmn.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucln_cmn.h
trunk/Build/source/libs/icu/icu-src/source/common/ucln_imp.h
trunk/Build/source/libs/icu/icu-src/source/common/ucmndata.h
trunk/Build/source/libs/icu/icu-src/source/common/ucnv2022.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_bld.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_bld.h
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_cnv.h
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_ext.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_ext.h
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_imp.h
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_io.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_io.h
trunk/Build/source/libs/icu/icu-src/source/common/ucnvbocu.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucnvmbcs.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucnvmbcs.h
trunk/Build/source/libs/icu/icu-src/source/common/ucnvsel.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucol_data.h
trunk/Build/source/libs/icu/icu-src/source/common/ucol_swp.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucol_swp.h
trunk/Build/source/libs/icu/icu-src/source/common/ucurr.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucurrimp.h
trunk/Build/source/libs/icu/icu-src/source/common/udata.cpp
trunk/Build/source/libs/icu/icu-src/source/common/udatamem.h
trunk/Build/source/libs/icu/icu-src/source/common/udataswp.h
trunk/Build/source/libs/icu/icu-src/source/common/uelement.h
trunk/Build/source/libs/icu/icu-src/source/common/uenumimp.h
trunk/Build/source/libs/icu/icu-src/source/common/uhash.h
trunk/Build/source/libs/icu/icu-src/source/common/uhash_us.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uidna.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uinit.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uinvchar.h
trunk/Build/source/libs/icu/icu-src/source/common/uiter.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ulist.h
trunk/Build/source/libs/icu/icu-src/source/common/ulistformatter.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uloc.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uloc_keytype.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ulocimp.h
trunk/Build/source/libs/icu/icu-src/source/common/umapfile.h
trunk/Build/source/libs/icu/icu-src/source/common/umutex.cpp
trunk/Build/source/libs/icu/icu-src/source/common/umutex.h
trunk/Build/source/libs/icu/icu-src/source/common/unames.cpp
trunk/Build/source/libs/icu/icu-src/source/common/unicode/appendable.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/brkiter.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/bytestream.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/bytestrie.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/bytestriebuilder.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/caniter.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/chariter.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/dbbi.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/docmain.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/dtintrv.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/enumset.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/errorcode.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/filteredbrk.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/icudataver.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/icuplug.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/idna.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/listformatter.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/localpointer.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/locdspnm.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/locid.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/messagepattern.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/normalizer2.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/normlzr.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/parseerr.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/parsepos.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/platform.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/ptypes.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/putil.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/rbbi.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/rep.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/resbund.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/schriter.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/simpleformatter.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/std_string.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/strenum.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/stringpiece.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/stringtriebuilder.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/symtable.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/ubidi.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/ubiditransform.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/ubrk.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/ucasemap.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/ucat.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/uchar.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/ucharstrie.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/ucharstriebuilder.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/uchriter.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/uclean.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/ucnv.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/ucnv_cb.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/ucnv_err.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/ucnvsel.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/uconfig.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/ucurr.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/udata.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/udisplaycontext.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/uenum.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/uidna.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/uiter.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/uldnames.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/ulistformatter.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/uloc.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/umachine.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/umisc.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/unifilt.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/unifunct.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/unimatch.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/uniset.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/unistr.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/unorm.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/unorm2.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/uobject.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/urename.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/urep.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/ures.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/uscript.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/uset.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/usetiter.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/ushape.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/usprep.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/ustring.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/ustringtrie.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/utext.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/utf.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/utf16.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/utf32.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/utf8.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/utf_old.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/utrace.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/utypes.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/uvernum.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/uversion.h
trunk/Build/source/libs/icu/icu-src/source/common/unifiedcache.cpp
trunk/Build/source/libs/icu/icu-src/source/common/unifiedcache.h
trunk/Build/source/libs/icu/icu-src/source/common/unifilt.cpp
trunk/Build/source/libs/icu/icu-src/source/common/unifunct.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uniset.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uniset_closure.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uniset_props.cpp
trunk/Build/source/libs/icu/icu-src/source/common/unisetspan.cpp
trunk/Build/source/libs/icu/icu-src/source/common/unisetspan.h
trunk/Build/source/libs/icu/icu-src/source/common/unistr.cpp
trunk/Build/source/libs/icu/icu-src/source/common/unistr_case.cpp
trunk/Build/source/libs/icu/icu-src/source/common/unistr_case_locale.cpp
trunk/Build/source/libs/icu/icu-src/source/common/unistr_cnv.cpp
trunk/Build/source/libs/icu/icu-src/source/common/unistr_props.cpp
trunk/Build/source/libs/icu/icu-src/source/common/unistr_titlecase_brkiter.cpp
trunk/Build/source/libs/icu/icu-src/source/common/unistrappender.h
trunk/Build/source/libs/icu/icu-src/source/common/unorm.cpp
trunk/Build/source/libs/icu/icu-src/source/common/unormcmp.cpp
trunk/Build/source/libs/icu/icu-src/source/common/unormimp.h
trunk/Build/source/libs/icu/icu-src/source/common/uobject.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uposixdefs.h
trunk/Build/source/libs/icu/icu-src/source/common/uprops.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uprops.h
trunk/Build/source/libs/icu/icu-src/source/common/uresbund.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uresdata.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uresdata.h
trunk/Build/source/libs/icu/icu-src/source/common/uresimp.h
trunk/Build/source/libs/icu/icu-src/source/common/ureslocs.h
trunk/Build/source/libs/icu/icu-src/source/common/usc_impl.h
trunk/Build/source/libs/icu/icu-src/source/common/uscript_props.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uset.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uset_imp.h
trunk/Build/source/libs/icu/icu-src/source/common/uset_props.cpp
trunk/Build/source/libs/icu/icu-src/source/common/usetiter.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ushape.cpp
trunk/Build/source/libs/icu/icu-src/source/common/usprep.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ustack.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ustr_cnv.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ustr_cnv.h
trunk/Build/source/libs/icu/icu-src/source/common/ustr_imp.h
trunk/Build/source/libs/icu/icu-src/source/common/ustr_titlecase_brkiter.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ustr_wcs.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ustrcase.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ustrcase_locale.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ustrenum.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ustrenum.h
trunk/Build/source/libs/icu/icu-src/source/common/ustrfmt.h
trunk/Build/source/libs/icu/icu-src/source/common/ustring.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ustrtrns.cpp
trunk/Build/source/libs/icu/icu-src/source/common/utext.cpp
trunk/Build/source/libs/icu/icu-src/source/common/util.cpp
trunk/Build/source/libs/icu/icu-src/source/common/util.h
trunk/Build/source/libs/icu/icu-src/source/common/util_props.cpp
trunk/Build/source/libs/icu/icu-src/source/common/utracimp.h
trunk/Build/source/libs/icu/icu-src/source/common/utrie.cpp
trunk/Build/source/libs/icu/icu-src/source/common/utrie.h
trunk/Build/source/libs/icu/icu-src/source/common/utrie2.cpp
trunk/Build/source/libs/icu/icu-src/source/common/utrie2.h
trunk/Build/source/libs/icu/icu-src/source/common/utrie2_builder.cpp
trunk/Build/source/libs/icu/icu-src/source/common/utrie2_impl.h
trunk/Build/source/libs/icu/icu-src/source/common/uts46.cpp
trunk/Build/source/libs/icu/icu-src/source/common/utypeinfo.h
trunk/Build/source/libs/icu/icu-src/source/common/uvector.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uvector.h
trunk/Build/source/libs/icu/icu-src/source/common/uvectr32.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uvectr32.h
trunk/Build/source/libs/icu/icu-src/source/common/uvectr64.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uvectr64.h
trunk/Build/source/libs/icu/icu-src/source/common/wintz.h
trunk/Build/source/libs/icu/icu-src/source/config/dist.mk
trunk/Build/source/libs/icu/icu-src/source/config/make2sh.sed
trunk/Build/source/libs/icu/icu-src/source/config/mh-aix-va
trunk/Build/source/libs/icu/icu-src/source/config/mh-cygwin
trunk/Build/source/libs/icu/icu-src/source/config/mh-cygwin-msvc
trunk/Build/source/libs/icu/icu-src/source/config/mh-cygwin64
trunk/Build/source/libs/icu/icu-src/source/config/mh-mingw
trunk/Build/source/libs/icu/icu-src/source/config/mh-mingw64
trunk/Build/source/libs/icu/icu-src/source/config/mh-msys-msvc
trunk/Build/source/libs/icu/icu-src/source/config/mh-os390
trunk/Build/source/libs/icu/icu-src/source/config/mh-solaris
trunk/Build/source/libs/icu/icu-src/source/configure
trunk/Build/source/libs/icu/icu-src/source/configure.ac
trunk/Build/source/libs/icu/icu-src/source/data/build.xml
trunk/Build/source/libs/icu/icu-src/source/data/cldr-icu-readme.txt
trunk/Build/source/libs/icu/icu-src/source/data/icu-coll-deprecates.xml
trunk/Build/source/libs/icu/icu-src/source/data/icu-config.xml
trunk/Build/source/libs/icu/icu-src/source/data/icu-locale-deprecates.xml
trunk/Build/source/libs/icu/icu-src/source/data/icu-rbnf-deprecates.xml
trunk/Build/source/libs/icu/icu-src/source/data/in/coll/ucadata-implicithan.icu
trunk/Build/source/libs/icu/icu-src/source/data/in/coll/ucadata-unihan.icu
trunk/Build/source/libs/icu/icu-src/source/data/in/nfc.nrm
trunk/Build/source/libs/icu/icu-src/source/data/in/nfkc.nrm
trunk/Build/source/libs/icu/icu-src/source/data/in/nfkc_cf.nrm
trunk/Build/source/libs/icu/icu-src/source/data/in/pnames.icu
trunk/Build/source/libs/icu/icu-src/source/data/in/ubidi.icu
trunk/Build/source/libs/icu/icu-src/source/data/in/ucase.icu
trunk/Build/source/libs/icu/icu-src/source/data/in/unames.icu
trunk/Build/source/libs/icu/icu-src/source/data/in/uprops.icu
trunk/Build/source/libs/icu/icu-src/source/data/in/uts46.nrm
trunk/Build/source/libs/icu/icu-src/source/data/makedata.mak
trunk/Build/source/libs/icu/icu-src/source/data/makedata.vcxproj
trunk/Build/source/libs/icu/icu-src/source/data/unidata/CaseFolding.txt
trunk/Build/source/libs/icu/icu-src/source/data/unidata/DerivedCoreProperties.txt
trunk/Build/source/libs/icu/icu-src/source/data/unidata/DerivedNormalizationProps.txt
trunk/Build/source/libs/icu/icu-src/source/data/unidata/FractionalUCA.txt
trunk/Build/source/libs/icu/icu-src/source/data/unidata/NormalizationCorrections.txt
trunk/Build/source/libs/icu/icu-src/source/data/unidata/NormalizationTest.txt
trunk/Build/source/libs/icu/icu-src/source/data/unidata/SpecialCasing.txt
trunk/Build/source/libs/icu/icu-src/source/data/unidata/UCARules.txt
trunk/Build/source/libs/icu/icu-src/source/data/unidata/UnicodeData.txt
trunk/Build/source/libs/icu/icu-src/source/data/unidata/changes.txt
trunk/Build/source/libs/icu/icu-src/source/data/unidata/confusables.txt
trunk/Build/source/libs/icu/icu-src/source/data/unidata/norm2/nfc.txt
trunk/Build/source/libs/icu/icu-src/source/data/unidata/norm2/nfkc.txt
trunk/Build/source/libs/icu/icu-src/source/data/unidata/norm2/nfkc_cf.txt
trunk/Build/source/libs/icu/icu-src/source/data/unidata/norm2/uts46.txt
trunk/Build/source/libs/icu/icu-src/source/data/unidata/ppucd.txt
trunk/Build/source/libs/icu/icu-src/source/extra/scrptrun/scrptrun.cpp
trunk/Build/source/libs/icu/icu-src/source/extra/scrptrun/scrptrun.h
trunk/Build/source/libs/icu/icu-src/source/extra/scrptrun/srtest.cpp
trunk/Build/source/libs/icu/icu-src/source/extra/uconv/Makefile.in
trunk/Build/source/libs/icu/icu-src/source/extra/uconv/uconv.1.in
trunk/Build/source/libs/icu/icu-src/source/extra/uconv/uconv.cpp
trunk/Build/source/libs/icu/icu-src/source/extra/uconv/uconv.vcxproj
trunk/Build/source/libs/icu/icu-src/source/extra/uconv/unicode/uwmsg.h
trunk/Build/source/libs/icu/icu-src/source/extra/uconv/uwmsg.c
trunk/Build/source/libs/icu/icu-src/source/i18n/Makefile.in
trunk/Build/source/libs/icu/icu-src/source/i18n/affixpatternparser.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/affixpatternparser.h
trunk/Build/source/libs/icu/icu-src/source/i18n/alphaindex.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/anytrans.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/anytrans.h
trunk/Build/source/libs/icu/icu-src/source/i18n/astro.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/astro.h
trunk/Build/source/libs/icu/icu-src/source/i18n/basictz.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/bocsu.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/bocsu.h
trunk/Build/source/libs/icu/icu-src/source/i18n/brktrans.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/brktrans.h
trunk/Build/source/libs/icu/icu-src/source/i18n/buddhcal.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/buddhcal.h
trunk/Build/source/libs/icu/icu-src/source/i18n/calendar.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/casetrn.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/casetrn.h
trunk/Build/source/libs/icu/icu-src/source/i18n/cecal.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/cecal.h
trunk/Build/source/libs/icu/icu-src/source/i18n/chnsecal.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/chnsecal.h
trunk/Build/source/libs/icu/icu-src/source/i18n/choicfmt.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/coleitr.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/coll.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/collation.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/collation.h
trunk/Build/source/libs/icu/icu-src/source/i18n/collationbuilder.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/collationbuilder.h
trunk/Build/source/libs/icu/icu-src/source/i18n/collationcompare.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/collationcompare.h
trunk/Build/source/libs/icu/icu-src/source/i18n/collationdata.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/collationdata.h
trunk/Build/source/libs/icu/icu-src/source/i18n/collationdatabuilder.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/collationdatabuilder.h
trunk/Build/source/libs/icu/icu-src/source/i18n/collationdatareader.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/collationdatareader.h
trunk/Build/source/libs/icu/icu-src/source/i18n/collationdatawriter.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/collationdatawriter.h
trunk/Build/source/libs/icu/icu-src/source/i18n/collationfastlatin.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/collationfastlatin.h
trunk/Build/source/libs/icu/icu-src/source/i18n/collationfastlatinbuilder.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/collationfastlatinbuilder.h
trunk/Build/source/libs/icu/icu-src/source/i18n/collationfcd.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/collationfcd.h
trunk/Build/source/libs/icu/icu-src/source/i18n/collationiterator.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/collationiterator.h
trunk/Build/source/libs/icu/icu-src/source/i18n/collationkeys.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/collationkeys.h
trunk/Build/source/libs/icu/icu-src/source/i18n/collationroot.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/collationroot.h
trunk/Build/source/libs/icu/icu-src/source/i18n/collationrootelements.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/collationrootelements.h
trunk/Build/source/libs/icu/icu-src/source/i18n/collationruleparser.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/collationruleparser.h
trunk/Build/source/libs/icu/icu-src/source/i18n/collationsets.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/collationsets.h
trunk/Build/source/libs/icu/icu-src/source/i18n/collationsettings.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/collationsettings.h
trunk/Build/source/libs/icu/icu-src/source/i18n/collationtailoring.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/collationtailoring.h
trunk/Build/source/libs/icu/icu-src/source/i18n/collationweights.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/collationweights.h
trunk/Build/source/libs/icu/icu-src/source/i18n/collunsafe.h
trunk/Build/source/libs/icu/icu-src/source/i18n/compactdecimalformat.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/coptccal.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/coptccal.h
trunk/Build/source/libs/icu/icu-src/source/i18n/cpdtrans.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/cpdtrans.h
trunk/Build/source/libs/icu/icu-src/source/i18n/csdetect.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/csdetect.h
trunk/Build/source/libs/icu/icu-src/source/i18n/csmatch.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/csmatch.h
trunk/Build/source/libs/icu/icu-src/source/i18n/csr2022.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/csr2022.h
trunk/Build/source/libs/icu/icu-src/source/i18n/csrecog.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/csrecog.h
trunk/Build/source/libs/icu/icu-src/source/i18n/csrmbcs.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/csrmbcs.h
trunk/Build/source/libs/icu/icu-src/source/i18n/csrsbcs.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/csrsbcs.h
trunk/Build/source/libs/icu/icu-src/source/i18n/csrucode.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/csrucode.h
trunk/Build/source/libs/icu/icu-src/source/i18n/csrutf8.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/csrutf8.h
trunk/Build/source/libs/icu/icu-src/source/i18n/curramt.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/currfmt.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/currfmt.h
trunk/Build/source/libs/icu/icu-src/source/i18n/currpinf.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/currunit.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/dangical.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/dangical.h
trunk/Build/source/libs/icu/icu-src/source/i18n/datefmt.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/dayperiodrules.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/dayperiodrules.h
trunk/Build/source/libs/icu/icu-src/source/i18n/dcfmtimp.h
trunk/Build/source/libs/icu/icu-src/source/i18n/dcfmtsym.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/decContext.h
trunk/Build/source/libs/icu/icu-src/source/i18n/decNumber.h
trunk/Build/source/libs/icu/icu-src/source/i18n/decNumberLocal.h
trunk/Build/source/libs/icu/icu-src/source/i18n/decfmtst.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/decfmtst.h
trunk/Build/source/libs/icu/icu-src/source/i18n/decimalformatpattern.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/decimalformatpattern.h
trunk/Build/source/libs/icu/icu-src/source/i18n/decimalformatpatternimpl.h
trunk/Build/source/libs/icu/icu-src/source/i18n/decimfmt.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/decimfmtimpl.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/decimfmtimpl.h
trunk/Build/source/libs/icu/icu-src/source/i18n/digitaffix.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/digitaffix.h
trunk/Build/source/libs/icu/icu-src/source/i18n/digitaffixesandpadding.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/digitaffixesandpadding.h
trunk/Build/source/libs/icu/icu-src/source/i18n/digitformatter.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/digitformatter.h
trunk/Build/source/libs/icu/icu-src/source/i18n/digitgrouping.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/digitgrouping.h
trunk/Build/source/libs/icu/icu-src/source/i18n/digitinterval.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/digitinterval.h
trunk/Build/source/libs/icu/icu-src/source/i18n/digitlst.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/digitlst.h
trunk/Build/source/libs/icu/icu-src/source/i18n/dt_impl.h
trunk/Build/source/libs/icu/icu-src/source/i18n/dtfmtsym.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/dtitv_impl.h
trunk/Build/source/libs/icu/icu-src/source/i18n/dtitvfmt.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/dtitvinf.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/dtptngen.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/dtptngen_impl.h
trunk/Build/source/libs/icu/icu-src/source/i18n/dtrule.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/esctrn.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/esctrn.h
trunk/Build/source/libs/icu/icu-src/source/i18n/ethpccal.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/ethpccal.h
trunk/Build/source/libs/icu/icu-src/source/i18n/fmtable.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/fmtable_cnv.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/fmtableimp.h
trunk/Build/source/libs/icu/icu-src/source/i18n/format.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/fphdlimp.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/fphdlimp.h
trunk/Build/source/libs/icu/icu-src/source/i18n/fpositer.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/funcrepl.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/funcrepl.h
trunk/Build/source/libs/icu/icu-src/source/i18n/gender.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/gregocal.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/gregoimp.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/gregoimp.h
trunk/Build/source/libs/icu/icu-src/source/i18n/hebrwcal.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/hebrwcal.h
trunk/Build/source/libs/icu/icu-src/source/i18n/i18n.vcxproj
trunk/Build/source/libs/icu/icu-src/source/i18n/i18n.vcxproj.filters
trunk/Build/source/libs/icu/icu-src/source/i18n/indiancal.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/indiancal.h
trunk/Build/source/libs/icu/icu-src/source/i18n/inputext.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/inputext.h
trunk/Build/source/libs/icu/icu-src/source/i18n/islamcal.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/islamcal.h
trunk/Build/source/libs/icu/icu-src/source/i18n/japancal.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/japancal.h
trunk/Build/source/libs/icu/icu-src/source/i18n/measfmt.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/measunit.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/measure.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/msgfmt.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/msgfmt_impl.h
trunk/Build/source/libs/icu/icu-src/source/i18n/name2uni.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/name2uni.h
trunk/Build/source/libs/icu/icu-src/source/i18n/nfrlist.h
trunk/Build/source/libs/icu/icu-src/source/i18n/nfrs.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/nfrs.h
trunk/Build/source/libs/icu/icu-src/source/i18n/nfrule.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/nfrule.h
trunk/Build/source/libs/icu/icu-src/source/i18n/nfsubs.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/nfsubs.h
trunk/Build/source/libs/icu/icu-src/source/i18n/nortrans.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/nortrans.h
trunk/Build/source/libs/icu/icu-src/source/i18n/nultrans.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/nultrans.h
trunk/Build/source/libs/icu/icu-src/source/i18n/numfmt.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/numsys.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/numsys_impl.h
trunk/Build/source/libs/icu/icu-src/source/i18n/olsontz.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/olsontz.h
trunk/Build/source/libs/icu/icu-src/source/i18n/persncal.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/persncal.h
trunk/Build/source/libs/icu/icu-src/source/i18n/pluralaffix.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/pluralaffix.h
trunk/Build/source/libs/icu/icu-src/source/i18n/plurfmt.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/plurrule.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/plurrule_impl.h
trunk/Build/source/libs/icu/icu-src/source/i18n/precision.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/precision.h
trunk/Build/source/libs/icu/icu-src/source/i18n/quant.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/quant.h
trunk/Build/source/libs/icu/icu-src/source/i18n/quantityformatter.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/quantityformatter.h
trunk/Build/source/libs/icu/icu-src/source/i18n/rbnf.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/rbt.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/rbt.h
trunk/Build/source/libs/icu/icu-src/source/i18n/rbt_data.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/rbt_data.h
trunk/Build/source/libs/icu/icu-src/source/i18n/rbt_pars.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/rbt_pars.h
trunk/Build/source/libs/icu/icu-src/source/i18n/rbt_rule.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/rbt_rule.h
trunk/Build/source/libs/icu/icu-src/source/i18n/rbt_set.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/rbt_set.h
trunk/Build/source/libs/icu/icu-src/source/i18n/rbtz.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/regexcmp.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/regexcmp.h
trunk/Build/source/libs/icu/icu-src/source/i18n/regexcst.h
trunk/Build/source/libs/icu/icu-src/source/i18n/regeximp.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/regeximp.h
trunk/Build/source/libs/icu/icu-src/source/i18n/regexst.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/regexst.h
trunk/Build/source/libs/icu/icu-src/source/i18n/regextxt.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/regextxt.h
trunk/Build/source/libs/icu/icu-src/source/i18n/region.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/region_impl.h
trunk/Build/source/libs/icu/icu-src/source/i18n/reldatefmt.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/reldtfmt.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/reldtfmt.h
trunk/Build/source/libs/icu/icu-src/source/i18n/rematch.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/remtrans.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/remtrans.h
trunk/Build/source/libs/icu/icu-src/source/i18n/repattrn.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/rulebasedcollator.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/scientificnumberformatter.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/scriptset.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/scriptset.h
trunk/Build/source/libs/icu/icu-src/source/i18n/search.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/selfmt.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/selfmtimpl.h
trunk/Build/source/libs/icu/icu-src/source/i18n/sharedbreakiterator.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/sharedbreakiterator.h
trunk/Build/source/libs/icu/icu-src/source/i18n/sharedcalendar.h
trunk/Build/source/libs/icu/icu-src/source/i18n/shareddateformatsymbols.h
trunk/Build/source/libs/icu/icu-src/source/i18n/sharednumberformat.h
trunk/Build/source/libs/icu/icu-src/source/i18n/sharedpluralrules.h
trunk/Build/source/libs/icu/icu-src/source/i18n/significantdigitinterval.h
trunk/Build/source/libs/icu/icu-src/source/i18n/simpletz.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/smallintformatter.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/smallintformatter.h
trunk/Build/source/libs/icu/icu-src/source/i18n/smpdtfmt.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/smpdtfst.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/smpdtfst.h
trunk/Build/source/libs/icu/icu-src/source/i18n/sortkey.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/standardplural.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/standardplural.h
trunk/Build/source/libs/icu/icu-src/source/i18n/strmatch.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/strmatch.h
trunk/Build/source/libs/icu/icu-src/source/i18n/strrepl.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/strrepl.h
trunk/Build/source/libs/icu/icu-src/source/i18n/stsearch.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/taiwncal.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/taiwncal.h
trunk/Build/source/libs/icu/icu-src/source/i18n/timezone.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/titletrn.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/titletrn.h
trunk/Build/source/libs/icu/icu-src/source/i18n/tmunit.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/tmutamt.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/tmutfmt.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/tolowtrn.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/tolowtrn.h
trunk/Build/source/libs/icu/icu-src/source/i18n/toupptrn.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/toupptrn.h
trunk/Build/source/libs/icu/icu-src/source/i18n/translit.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/transreg.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/transreg.h
trunk/Build/source/libs/icu/icu-src/source/i18n/tridpars.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/tridpars.h
trunk/Build/source/libs/icu/icu-src/source/i18n/tzfmt.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/tzgnames.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/tzgnames.h
trunk/Build/source/libs/icu/icu-src/source/i18n/tznames.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/tznames_impl.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/tznames_impl.h
trunk/Build/source/libs/icu/icu-src/source/i18n/tzrule.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/tztrans.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/ucal.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/ucln_in.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/ucln_in.h
trunk/Build/source/libs/icu/icu-src/source/i18n/ucol.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/ucol_imp.h
trunk/Build/source/libs/icu/icu-src/source/i18n/ucol_res.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/ucol_sit.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/ucoleitr.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/ucsdet.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/udat.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/udateintervalformat.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/udatpg.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/ufieldpositer.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/uitercollationiterator.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/uitercollationiterator.h
trunk/Build/source/libs/icu/icu-src/source/i18n/umsg.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/umsg_imp.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unesctrn.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/unesctrn.h
trunk/Build/source/libs/icu/icu-src/source/i18n/uni2name.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/uni2name.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/alphaindex.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/basictz.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/calendar.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/choicfmt.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/coleitr.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/coll.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/compactdecimalformat.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/curramt.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/currpinf.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/currunit.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/datefmt.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/dcfmtsym.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/decimfmt.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/dtfmtsym.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/dtitvfmt.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/dtitvinf.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/dtptngen.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/dtrule.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/fieldpos.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/fmtable.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/format.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/fpositer.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/gender.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/gregocal.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/measfmt.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/measunit.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/measure.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/msgfmt.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/numfmt.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/numsys.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/plurfmt.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/plurrule.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/rbnf.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/rbtz.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/regex.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/region.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/reldatefmt.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/scientificnumberformatter.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/search.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/selfmt.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/simpletz.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/smpdtfmt.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/sortkey.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/stsearch.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/tblcoll.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/timezone.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/tmunit.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/tmutamt.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/tmutfmt.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/translit.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/tzfmt.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/tznames.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/tzrule.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/tztrans.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/ucal.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/ucol.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/ucoleitr.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/ucsdet.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/udat.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/udateintervalformat.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/udatpg.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/ufieldpositer.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/uformattable.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/ugender.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/ulocdata.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/umsg.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/unirepl.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/unum.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/unumsys.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/upluralrules.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/uregex.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/uregion.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/ureldatefmt.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/usearch.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/uspoof.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/utmscale.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/utrans.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/vtzone.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unum.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/unumsys.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/upluralrules.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/uregex.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/uregexc.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/uregion.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/usearch.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/uspoof.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/uspoof_build.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/uspoof_conf.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/uspoof_conf.h
trunk/Build/source/libs/icu/icu-src/source/i18n/uspoof_impl.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/uspoof_impl.h
trunk/Build/source/libs/icu/icu-src/source/i18n/usrchimp.h
trunk/Build/source/libs/icu/icu-src/source/i18n/utf16collationiterator.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/utf16collationiterator.h
trunk/Build/source/libs/icu/icu-src/source/i18n/utf8collationiterator.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/utf8collationiterator.h
trunk/Build/source/libs/icu/icu-src/source/i18n/utrans.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/valueformatter.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/valueformatter.h
trunk/Build/source/libs/icu/icu-src/source/i18n/visibledigits.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/visibledigits.h
trunk/Build/source/libs/icu/icu-src/source/i18n/vtzone.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/vzone.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/vzone.h
trunk/Build/source/libs/icu/icu-src/source/i18n/windtfmt.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/windtfmt.h
trunk/Build/source/libs/icu/icu-src/source/i18n/winnmfmt.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/winnmfmt.h
trunk/Build/source/libs/icu/icu-src/source/i18n/wintzimpl.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/wintzimpl.h
trunk/Build/source/libs/icu/icu-src/source/i18n/zonemeta.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/zonemeta.h
trunk/Build/source/libs/icu/icu-src/source/i18n/zrule.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/zrule.h
trunk/Build/source/libs/icu/icu-src/source/i18n/ztrans.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/ztrans.h
trunk/Build/source/libs/icu/icu-src/source/icudefs.mk.in
trunk/Build/source/libs/icu/icu-src/source/io/Makefile.in
trunk/Build/source/libs/icu/icu-src/source/io/io.vcxproj
trunk/Build/source/libs/icu/icu-src/source/io/io.vcxproj.filters
trunk/Build/source/libs/icu/icu-src/source/io/locbund.cpp
trunk/Build/source/libs/icu/icu-src/source/io/locbund.h
trunk/Build/source/libs/icu/icu-src/source/io/ucln_io.cpp
trunk/Build/source/libs/icu/icu-src/source/io/ucln_io.h
trunk/Build/source/libs/icu/icu-src/source/io/ufile.h
trunk/Build/source/libs/icu/icu-src/source/io/ufmt_cmn.h
trunk/Build/source/libs/icu/icu-src/source/io/unicode/ustdio.h
trunk/Build/source/libs/icu/icu-src/source/io/unicode/ustream.h
trunk/Build/source/libs/icu/icu-src/source/io/uprintf.cpp
trunk/Build/source/libs/icu/icu-src/source/io/uprintf.h
trunk/Build/source/libs/icu/icu-src/source/io/uscanf.h
trunk/Build/source/libs/icu/icu-src/source/io/ustream.cpp
trunk/Build/source/libs/icu/icu-src/source/layoutex/LXUtilities.cpp
trunk/Build/source/libs/icu/icu-src/source/layoutex/LXUtilities.h
trunk/Build/source/libs/icu/icu-src/source/layoutex/ParagraphLayout.cpp
trunk/Build/source/libs/icu/icu-src/source/layoutex/RunArrays.cpp
trunk/Build/source/libs/icu/icu-src/source/layoutex/layout/ParagraphLayout.h
trunk/Build/source/libs/icu/icu-src/source/layoutex/layout/RunArrays.h
trunk/Build/source/libs/icu/icu-src/source/layoutex/layout/playout.h
trunk/Build/source/libs/icu/icu-src/source/layoutex/layout/plruns.h
trunk/Build/source/libs/icu/icu-src/source/layoutex/layoutex.vcxproj
trunk/Build/source/libs/icu/icu-src/source/layoutex/playout.cpp
trunk/Build/source/libs/icu/icu-src/source/layoutex/plruns.cpp
trunk/Build/source/libs/icu/icu-src/source/runConfigureICU
trunk/Build/source/libs/icu/icu-src/source/samples/break/break.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/break/break.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/break/ubreak.c
trunk/Build/source/libs/icu/icu-src/source/samples/cal/cal.c
trunk/Build/source/libs/icu/icu-src/source/samples/cal/cal.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/cal/uprint.c
trunk/Build/source/libs/icu/icu-src/source/samples/cal/uprint.h
trunk/Build/source/libs/icu/icu-src/source/samples/case/case.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/case/case.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/case/ucase.c
trunk/Build/source/libs/icu/icu-src/source/samples/citer/citer.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/citer/citer.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/coll/coll.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/coll/coll.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/csdet/csdet.c
trunk/Build/source/libs/icu/icu-src/source/samples/csdet/csdet.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/date/date.c
trunk/Build/source/libs/icu/icu-src/source/samples/date/date.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/date/uprint.c
trunk/Build/source/libs/icu/icu-src/source/samples/date/uprint.h
trunk/Build/source/libs/icu/icu-src/source/samples/datecal/cal.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/datecal/ccal.c
trunk/Build/source/libs/icu/icu-src/source/samples/datefmt/answers/main_0.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/datefmt/answers/main_1.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/datefmt/answers/main_2.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/datefmt/answers/main_3.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/datefmt/datefmt.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/datefmt/main.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/datefmt/util.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/datefmt/util.h
trunk/Build/source/libs/icu/icu-src/source/samples/dtitvfmtsample/dtitvfmtsample.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/dtitvfmtsample/dtitvfmtsample.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/dtptngsample/dtptngsample.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/dtptngsample/dtptngsample.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/layout/FontMap.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/layout/FontMap.h
trunk/Build/source/libs/icu/icu-src/source/samples/layout/FontTableCache.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/layout/FontTableCache.h
trunk/Build/source/libs/icu/icu-src/source/samples/layout/GDIFontInstance.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/layout/GDIFontInstance.h
trunk/Build/source/libs/icu/icu-src/source/samples/layout/GDIFontMap.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/layout/GDIFontMap.h
trunk/Build/source/libs/icu/icu-src/source/samples/layout/GDIGUISupport.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/layout/GDIGUISupport.h
trunk/Build/source/libs/icu/icu-src/source/samples/layout/GUISupport.h
trunk/Build/source/libs/icu/icu-src/source/samples/layout/GnomeFontInstance.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/layout/GnomeFontInstance.h
trunk/Build/source/libs/icu/icu-src/source/samples/layout/GnomeFontMap.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/layout/GnomeFontMap.h
trunk/Build/source/libs/icu/icu-src/source/samples/layout/GnomeGUISupport.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/layout/GnomeGUISupport.h
trunk/Build/source/libs/icu/icu-src/source/samples/layout/RenderingSurface.h
trunk/Build/source/libs/icu/icu-src/source/samples/layout/ScriptCompositeFontInstance.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/layout/ScriptCompositeFontInstance.h
trunk/Build/source/libs/icu/icu-src/source/samples/layout/Surface.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/layout/Surface.h
trunk/Build/source/libs/icu/icu-src/source/samples/layout/UnicodeReader.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/layout/UnicodeReader.h
trunk/Build/source/libs/icu/icu-src/source/samples/layout/arraymem.h
trunk/Build/source/libs/icu/icu-src/source/samples/layout/cgnomelayout.c
trunk/Build/source/libs/icu/icu-src/source/samples/layout/clayout.c
trunk/Build/source/libs/icu/icu-src/source/samples/layout/cmaps.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/layout/cmaps.h
trunk/Build/source/libs/icu/icu-src/source/samples/layout/gdiglue.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/layout/gdiglue.h
trunk/Build/source/libs/icu/icu-src/source/samples/layout/gnomeglue.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/layout/gnomeglue.h
trunk/Build/source/libs/icu/icu-src/source/samples/layout/gnomelayout.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/layout/gsupport.h
trunk/Build/source/libs/icu/icu-src/source/samples/layout/layout.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/layout/layout.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/layout/paragraph.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/layout/paragraph.h
trunk/Build/source/libs/icu/icu-src/source/samples/layout/pflow.c
trunk/Build/source/libs/icu/icu-src/source/samples/layout/pflow.h
trunk/Build/source/libs/icu/icu-src/source/samples/layout/resource.h
trunk/Build/source/libs/icu/icu-src/source/samples/layout/rsurface.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/layout/rsurface.h
trunk/Build/source/libs/icu/icu-src/source/samples/layout/sfnt.h
trunk/Build/source/libs/icu/icu-src/source/samples/layout/ucreader.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/layout/ucreader.h
trunk/Build/source/libs/icu/icu-src/source/samples/legacy/legacy.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/legacy/legacy.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/legacy/newcol.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/legacy/oldcol.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/msgfmt/answers/main_0.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/msgfmt/answers/main_1.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/msgfmt/answers/main_2.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/msgfmt/answers/main_3.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/msgfmt/main.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/msgfmt/msgfmt.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/msgfmt/util.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/msgfmt/util.h
trunk/Build/source/libs/icu/icu-src/source/samples/numfmt/capi.c
trunk/Build/source/libs/icu/icu-src/source/samples/numfmt/main.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/numfmt/numfmt.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/numfmt/util.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/numfmt/util.h
trunk/Build/source/libs/icu/icu-src/source/samples/plurfmtsample/plurfmtsample.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/plurfmtsample/plurfmtsample.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/props/props.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/props/props.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/strsrch/strsrch.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/strsrch/strsrch.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/translit/answers/main_1.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/translit/answers/main_2.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/translit/answers/main_3.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/translit/answers/main_4.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/translit/answers/unaccent.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/translit/answers/unaccent.h
trunk/Build/source/libs/icu/icu-src/source/samples/translit/main.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/translit/translit.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/translit/unaccent.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/translit/unaccent.h
trunk/Build/source/libs/icu/icu-src/source/samples/translit/util.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/translit/util.h
trunk/Build/source/libs/icu/icu-src/source/samples/uciter8/uciter8.c
trunk/Build/source/libs/icu/icu-src/source/samples/uciter8/uciter8.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/uciter8/uit_len8.c
trunk/Build/source/libs/icu/icu-src/source/samples/uciter8/uit_len8.h
trunk/Build/source/libs/icu/icu-src/source/samples/ucnv/convsamp.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/ucnv/flagcb.c
trunk/Build/source/libs/icu/icu-src/source/samples/ucnv/flagcb.h
trunk/Build/source/libs/icu/icu-src/source/samples/ucnv/ucnv.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/udata/reader.c
trunk/Build/source/libs/icu/icu-src/source/samples/udata/reader.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/udata/writer.c
trunk/Build/source/libs/icu/icu-src/source/samples/udata/writer.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/ufortune/ufortune.c
trunk/Build/source/libs/icu/icu-src/source/samples/ufortune/ufortune.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/ugrep/ugrep.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/ugrep/ugrep.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/uresb/Makefile
trunk/Build/source/libs/icu/icu-src/source/samples/uresb/uresb.c
trunk/Build/source/libs/icu/icu-src/source/samples/uresb/uresb.vcxproj
trunk/Build/source/libs/icu/icu-src/source/samples/ustring/ustring.cpp
trunk/Build/source/libs/icu/icu-src/source/samples/ustring/ustring.vcxproj
trunk/Build/source/libs/icu/icu-src/source/stubdata/stubdata.vcxproj
trunk/Build/source/libs/icu/icu-src/source/stubdata/stubdata.vcxproj.filters
trunk/Build/source/libs/icu/icu-src/source/test/Makefile.in
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/bocu1tst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/callcoll.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/callcoll.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/calldata.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/calltest.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/capitst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/capitst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cbiapts.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cbiapts.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cbididat.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cbiditransformtst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cbiditst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cbiditst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cbkittst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ccaltst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ccaltst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ccapitst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ccapitst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ccolltst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ccolltst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cconvtst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cctest.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ccurrtst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ccurrtst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cdateintervalformattest.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cdattst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cdattst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cdetst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cdetst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cdtdptst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cdtdptst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cdtrgtst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cdtrgtst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cestst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cestst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cfintst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cfintst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cformtst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cformtst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cfrtst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cfrtst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cg7coll.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cg7coll.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cgendtst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/chashtst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cintltst.vcxproj
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/citertst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/citertst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cjaptst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cjaptst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cldrtest.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cloctst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cloctst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cmsccoll.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cmsgtst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cmsgtst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cnmdptst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cnmdptst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cnormtst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cnormtst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cnumtst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cnumtst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cpluralrulestest.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cposxtst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/crelativedateformattest.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/crestst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/crestst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/creststn.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/creststn.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cstrcase.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cstrtest.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cturtst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cturtst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cucdapi.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cucdapi.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cucdtst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/currtest.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/custrtrn.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/custrtst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/cutiltst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/encoll.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/encoll.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/eurocreg.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/hpmufn.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/idnatest.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/nccbtst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/nccbtst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ncnvfbts.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ncnvfbts.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ncnvtst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/nfsprep.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/nfsprep.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/nucnvtst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/nucnvtst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/putiltst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/reapits.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/sorttest.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/spooftest.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/spreptst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/sprpdata.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/stdnmtst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/tracetst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/trie2test.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/trietest.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ucnvseltst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ucnvseltst.h
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ucsdetst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/udatatst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/udatpg_test.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/uenumtst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/ulistfmttest.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/uregiontest.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/usettest.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/usrchdat.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/usrchtst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/utexttst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/utf16tst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/utf8tst.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/utmstest.c
trunk/Build/source/libs/icu/icu-src/source/test/cintltst/utransts.c
trunk/Build/source/libs/icu/icu-src/source/test/compat/tzdate.c
trunk/Build/source/libs/icu/icu-src/source/test/depstest/dependencies.txt
trunk/Build/source/libs/icu/icu-src/source/test/hdrtst/Makefile.in
trunk/Build/source/libs/icu/icu-src/source/test/hdrtst/cxxfiles.txt
trunk/Build/source/libs/icu/icu-src/source/test/hdrtst/testinternalheaders.sh
trunk/Build/source/libs/icu/icu-src/source/test/intltest/Makefile.in
trunk/Build/source/libs/icu/icu-src/source/test/intltest/aliastst.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/aliastst.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/allcoll.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/allcoll.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/alphaindextst.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/alphaindextst.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/apicoll.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/apicoll.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/astrotst.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/astrotst.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/bidiconf.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/bytestrietest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/calcasts.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/calcasts.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/callimts.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/callimts.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/calregts.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/calregts.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/caltest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/caltest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/caltestdata.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/caltztst.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/caltztst.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/canittst.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/canittst.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/citrtest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/citrtest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/collationtest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/colldata.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/colldata.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/compactdecimalformattest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/convtest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/convtest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/cpdtrtst.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/cpdtrtst.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/csdetest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/csdetest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/currcoll.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/currcoll.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/dadrcal.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/dadrcal.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/dadrfmt.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/dadrfmt.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/datadrivennumberformattestsuite.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/datadrivennumberformattestsuite.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/dcfmapts.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/dcfmapts.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/dcfmtest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/dcfmtest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/decoll.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/decoll.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/dtfmapts.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/dtfmapts.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/dtfmrgts.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/dtfmrgts.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/dtfmtrtts.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/dtfmtrtts.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/dtfmttst.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/dtfmttst.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/dtifmtts.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/dtifmtts.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/dtptngts.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/dtptngts.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/encoll.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/encoll.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/escoll.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/escoll.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/ficoll.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/ficoll.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/fldset.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/fldset.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/frcoll.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/frcoll.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/g7coll.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/g7coll.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/genderinfotest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/icusvtst.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/icusvtst.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/idnaconf.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/idnaconf.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/idnaref.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/idnaref.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/incaltst.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/incaltst.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/intltest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/intltest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/intltest.vcxproj
trunk/Build/source/libs/icu/icu-src/source/test/intltest/intltest.vcxproj.filters
trunk/Build/source/libs/icu/icu-src/source/test/intltest/itercoll.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/itercoll.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/itformat.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/itformat.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/itmajor.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/itmajor.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/itrbbi.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/itrbbi.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/itrbnf.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/itrbnf.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/itrbnfp.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/itrbnfp.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/itrbnfrt.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/itrbnfrt.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/itspoof.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/itspoof.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/ittrans.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/ittrans.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/itutil.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/itutil.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/jacoll.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/jacoll.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/jamotest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/jamotest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/lcukocol.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/lcukocol.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/listformattertest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/listformattertest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/locnmtst.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/locnmtst.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/loctest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/loctest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/measfmttest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/miscdtfm.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/miscdtfm.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/mnkytst.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/mnkytst.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/msfmrgts.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/msfmrgts.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/nmfmapts.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/nmfmapts.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/nmfmtrt.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/nmfmtrt.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/normconf.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/normconf.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/nptrans.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/nptrans.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/numberformat2test.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/numberformattesttuple.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/numberformattesttuple.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/numfmtspectest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/numfmtst.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/numfmtst.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/numrgts.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/numrgts.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/pluralmaptest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/plurfmts.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/plurfmts.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/plurults.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/plurults.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/pptest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/pptest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/punyref.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/quantityformattertest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/rbbiapts.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/rbbiapts.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/rbbimonkeytest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/rbbimonkeytest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/rbbitst.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/rbbitst.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/regcoll.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/regcoll.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/regextst.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/regextst.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/regiontst.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/regiontst.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/reldatefmttest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/reptest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/reptest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/restest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/restest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/restsnew.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/restsnew.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/scientificnumberformattertest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/sdtfmtts.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/sdtfmtts.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/selfmts.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/selfmts.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/sfwdchit.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/sfwdchit.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/simpleformattertest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/simplethread.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/simplethread.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/srchtest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/srchtest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/ssearch.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/ssearch.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/strcase.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/strtest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/strtest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/svccoll.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/svccoll.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tchcfmt.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tchcfmt.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/testidn.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/testidna.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/testidna.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/testutil.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/testutil.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/textfile.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/textfile.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tfsmalls.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tfsmalls.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/thcoll.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/thcoll.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tmsgfmt.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tmsgfmt.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tokiter.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tokiter.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/transapi.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/transapi.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/transrt.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/transrt.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/transtst.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/transtst.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/trcoll.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/trcoll.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/trnserr.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/trnserr.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tscoll.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tscoll.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tsdate.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tsdate.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tsdcfmsy.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tsdcfmsy.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tsdtfmsy.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tsdtfmsy.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tsmthred.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tsmthred.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tsnmfmt.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tsnmfmt.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tsputil.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tsputil.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tstnorm.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tstnorm.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tstnrapi.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tufmtts.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tzbdtest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tzbdtest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tzfmttst.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tzfmttst.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tzoffloc.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tzoffloc.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tzregts.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tzregts.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tzrulets.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tzrulets.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tztest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/tztest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/ucaconf.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/ucaconf.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/ucdtest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/ucdtest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/ucharstrietest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/unifiedcachetest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/uobjtest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/uobjtest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/usettest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/usettest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/ustrtest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/ustrtest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/uts46test.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/utxttest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/utxttest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/uvectest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/uvectest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/v32test.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/v32test.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/windttst.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/windttst.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/winnmtst.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/winnmtst.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/winutil.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/winutil.h
trunk/Build/source/libs/icu/icu-src/source/test/iotest/Makefile.in
trunk/Build/source/libs/icu/icu-src/source/test/iotest/filetst.c
trunk/Build/source/libs/icu/icu-src/source/test/iotest/iotest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/iotest/iotest.h
trunk/Build/source/libs/icu/icu-src/source/test/iotest/iotest.vcxproj
trunk/Build/source/libs/icu/icu-src/source/test/iotest/stream.cpp
trunk/Build/source/libs/icu/icu-src/source/test/iotest/strtst.c
trunk/Build/source/libs/icu/icu-src/source/test/iotest/trnstst.c
trunk/Build/source/libs/icu/icu-src/source/test/letest/FontObject.cpp
trunk/Build/source/libs/icu/icu-src/source/test/letest/FontObject.h
trunk/Build/source/libs/icu/icu-src/source/test/letest/FontTableCache.cpp
trunk/Build/source/libs/icu/icu-src/source/test/letest/FontTableCache.h
trunk/Build/source/libs/icu/icu-src/source/test/letest/PortableFontInstance.cpp
trunk/Build/source/libs/icu/icu-src/source/test/letest/PortableFontInstance.h
trunk/Build/source/libs/icu/icu-src/source/test/letest/SimpleFontInstance.cpp
trunk/Build/source/libs/icu/icu-src/source/test/letest/SimpleFontInstance.h
trunk/Build/source/libs/icu/icu-src/source/test/letest/cfonts.cpp
trunk/Build/source/libs/icu/icu-src/source/test/letest/cfonts.h
trunk/Build/source/libs/icu/icu-src/source/test/letest/cletest.c
trunk/Build/source/libs/icu/icu-src/source/test/letest/cletest.vcxproj
trunk/Build/source/libs/icu/icu-src/source/test/letest/cmaps.cpp
trunk/Build/source/libs/icu/icu-src/source/test/letest/cmaps.h
trunk/Build/source/libs/icu/icu-src/source/test/letest/gendata.cpp
trunk/Build/source/libs/icu/icu-src/source/test/letest/gendata.vcxproj
trunk/Build/source/libs/icu/icu-src/source/test/letest/letest.cpp
trunk/Build/source/libs/icu/icu-src/source/test/letest/letest.h
trunk/Build/source/libs/icu/icu-src/source/test/letest/letest.vcxproj
trunk/Build/source/libs/icu/icu-src/source/test/letest/letsutil.cpp
trunk/Build/source/libs/icu/icu-src/source/test/letest/letsutil.h
trunk/Build/source/libs/icu/icu-src/source/test/letest/sfnt.h
trunk/Build/source/libs/icu/icu-src/source/test/letest/testdata.cpp
trunk/Build/source/libs/icu/icu-src/source/test/letest/xmlreader.cpp
trunk/Build/source/libs/icu/icu-src/source/test/letest/xmlreader.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/DateFmtPerf/DateFmtPerf.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/DateFmtPerf/DateFmtPerf.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/DateFmtPerf/DateFmtPerf.vcxproj
trunk/Build/source/libs/icu/icu-src/source/test/perf/DateFmtPerf/breakdata.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/DateFmtPerf/collationdata.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/DateFmtPerf/datedata.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/charperf/charperf.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/charperf/charperf.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/charperf/charperf.vcxproj
trunk/Build/source/libs/icu/icu-src/source/test/perf/collationperf/collperf.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/collperf/collperf.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/collperf/collperf.vcxproj
trunk/Build/source/libs/icu/icu-src/source/test/perf/collperf2/collperf2.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/collperf2/collperf2.vcxproj
trunk/Build/source/libs/icu/icu-src/source/test/perf/convperf/convperf.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/convperf/convperf.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/convperf/convperf.vcxproj
trunk/Build/source/libs/icu/icu-src/source/test/perf/convperf/data.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/dicttrieperf/dicttrieperf.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/howExpensiveIs/Makefile.in
trunk/Build/source/libs/icu/icu-src/source/test/perf/howExpensiveIs/howExpensiveIs.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/howExpensiveIs/sieve.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/howExpensiveIs/sieve.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/FontObject.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/FontObject.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/FontTableCache.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/FontTableCache.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/PortableFontInstance.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/PortableFontInstance.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/SimpleFontInstance.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/SimpleFontInstance.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/cfonts.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/cfonts.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/cmaps.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/cmaps.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/leperf.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/letrperf.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/sfnt.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/xmlreader.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/leperf/xmlreader.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/normperf/dtfmtrtperf.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/normperf/dtfmtrtperf.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/normperf/dtfmtrtperf.vcxproj
trunk/Build/source/libs/icu/icu-src/source/test/perf/normperf/normperf.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/normperf/normperf.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/normperf/normperf.vcxproj
trunk/Build/source/libs/icu/icu-src/source/test/perf/strsrchperf/strsrchperf.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/strsrchperf/strsrchperf.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/strsrchperf/strsrchperf.vcxproj
trunk/Build/source/libs/icu/icu-src/source/test/perf/ubrkperf/ubrkperf.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/ubrkperf/ubrkperf.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/ubrkperf/ubrkperf.vcxproj
trunk/Build/source/libs/icu/icu-src/source/test/perf/ubrkperf/ubrkperfold.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/ucnvavailperf/ucnvavailperf.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/ucnvavailperf/ucnvavailperf.vcxproj
trunk/Build/source/libs/icu/icu-src/source/test/perf/unisetperf/draft/bitset.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/unisetperf/draft/trieset.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/unisetperf/draft/unicont.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/unisetperf/unisetperf.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/unisetperf/unisetperf.vcxproj
trunk/Build/source/libs/icu/icu-src/source/test/perf/usetperf/bitset.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/usetperf/bitset.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/usetperf/usetperf.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/usetperf/usetperf.vcxproj
trunk/Build/source/libs/icu/icu-src/source/test/perf/ustrperf/stringperf.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/ustrperf/stringperf.h
trunk/Build/source/libs/icu/icu-src/source/test/perf/ustrperf/stringperf.vcxproj
trunk/Build/source/libs/icu/icu-src/source/test/perf/utfperf/utfperf.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/utfperf/utfperf.vcxproj
trunk/Build/source/libs/icu/icu-src/source/test/perf/utrie2perf/utrie2perf.cpp
trunk/Build/source/libs/icu/icu-src/source/test/perf/utrie2perf/utrie2perf.vcxproj
trunk/Build/source/libs/icu/icu-src/source/test/testdata/BidiTest.txt
trunk/Build/source/libs/icu/icu-src/source/test/testdata/CollationTest_NON_IGNORABLE_SHORT.txt
trunk/Build/source/libs/icu/icu-src/source/test/testdata/CollationTest_SHIFTED_SHORT.txt
trunk/Build/source/libs/icu/icu-src/source/test/testdata/GraphemeBreakTest.txt
trunk/Build/source/libs/icu/icu-src/source/test/testdata/LineBreakTest.txt
trunk/Build/source/libs/icu/icu-src/source/test/testdata/SentenceBreakTest.txt
trunk/Build/source/libs/icu/icu-src/source/test/testdata/WordBreakTest.txt
trunk/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/grapheme.txt
trunk/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line.txt
trunk/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_loose.txt
trunk/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_loose_cj.txt
trunk/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_normal.txt
trunk/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/line_normal_cj.txt
trunk/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/readme.txt
trunk/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/word.txt
trunk/Build/source/libs/icu/icu-src/source/test/testdata/break_rules/word_POSIX.txt
trunk/Build/source/libs/icu/icu-src/source/test/testdata/conversion.txt
trunk/Build/source/libs/icu/icu-src/source/test/testdata/numberformattestspecification.txt
trunk/Build/source/libs/icu/icu-src/source/test/testdata/rbbitst.txt
trunk/Build/source/libs/icu/icu-src/source/test/testdata/regextst.txt
trunk/Build/source/libs/icu/icu-src/source/test/testdata/root.txt
trunk/Build/source/libs/icu/icu-src/source/test/testdata/structLocale.txt
trunk/Build/source/libs/icu/icu-src/source/test/testmap/testmap.c
trunk/Build/source/libs/icu/icu-src/source/test/thaitest/thaitest.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/Makefile.in
trunk/Build/source/libs/icu/icu-src/source/tools/ctestfw/ctest.c
trunk/Build/source/libs/icu/icu-src/source/tools/ctestfw/ctestfw.vcxproj
trunk/Build/source/libs/icu/icu-src/source/tools/ctestfw/datamap.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/ctestfw/testdata.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/ctestfw/tstdtmod.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/ctestfw/ucln_ct.c
trunk/Build/source/libs/icu/icu-src/source/tools/ctestfw/unicode/ctest.h
trunk/Build/source/libs/icu/icu-src/source/tools/ctestfw/unicode/datamap.h
trunk/Build/source/libs/icu/icu-src/source/tools/ctestfw/unicode/testdata.h
trunk/Build/source/libs/icu/icu-src/source/tools/ctestfw/unicode/testlog.h
trunk/Build/source/libs/icu/icu-src/source/tools/ctestfw/unicode/testtype.h
trunk/Build/source/libs/icu/icu-src/source/tools/ctestfw/unicode/tstdtmod.h
trunk/Build/source/libs/icu/icu-src/source/tools/ctestfw/unicode/uperf.h
trunk/Build/source/libs/icu/icu-src/source/tools/ctestfw/unicode/utimer.h
trunk/Build/source/libs/icu/icu-src/source/tools/ctestfw/uperf.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/genbrk/genbrk.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/genbrk/genbrk.vcxproj
trunk/Build/source/libs/icu/icu-src/source/tools/genccode/genccode.c
trunk/Build/source/libs/icu/icu-src/source/tools/genccode/genccode.vcxproj
trunk/Build/source/libs/icu/icu-src/source/tools/gencfu/gencfu.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/gencfu/gencfu.vcxproj
trunk/Build/source/libs/icu/icu-src/source/tools/gencmn/gencmn.c
trunk/Build/source/libs/icu/icu-src/source/tools/gencmn/gencmn.vcxproj
trunk/Build/source/libs/icu/icu-src/source/tools/gencnval/gencnval.c
trunk/Build/source/libs/icu/icu-src/source/tools/gencnval/gencnval.vcxproj
trunk/Build/source/libs/icu/icu-src/source/tools/gencolusb/extract_unsafe_backwards.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/gencolusb/verify_uset.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/gendict/gendict.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/gendict/gendict.vcxproj
trunk/Build/source/libs/icu/icu-src/source/tools/gennorm2/Makefile.in
trunk/Build/source/libs/icu/icu-src/source/tools/gennorm2/gennorm2.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/gennorm2/gennorm2.vcxproj
trunk/Build/source/libs/icu/icu-src/source/tools/gennorm2/n2builder.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/gennorm2/n2builder.h
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/Makefile.in
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/derb.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/derb.vcxproj
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/errmsg.c
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/errmsg.h
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/genrb.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/genrb.h
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/genrb.vcxproj
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/parse.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/parse.h
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/prscmnts.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/prscmnts.h
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/rbutil.c
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/rbutil.h
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/read.c
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/read.h
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/reslist.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/reslist.h
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/rle.c
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/rle.h
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/ustr.c
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/ustr.h
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/wrtjava.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/genrb/wrtxml.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/genren/Makefile
trunk/Build/source/libs/icu/icu-src/source/tools/genren/README
trunk/Build/source/libs/icu/icu-src/source/tools/genren/genren.pl
trunk/Build/source/libs/icu/icu-src/source/tools/gensprep/gensprep.c
trunk/Build/source/libs/icu/icu-src/source/tools/gensprep/gensprep.h
trunk/Build/source/libs/icu/icu-src/source/tools/gensprep/gensprep.vcxproj
trunk/Build/source/libs/icu/icu-src/source/tools/gensprep/store.c
trunk/Build/source/libs/icu/icu-src/source/tools/gentest/genres32.c
trunk/Build/source/libs/icu/icu-src/source/tools/gentest/gentest.c
trunk/Build/source/libs/icu/icu-src/source/tools/gentest/gentest.h
trunk/Build/source/libs/icu/icu-src/source/tools/gentest/gentest.vcxproj
trunk/Build/source/libs/icu/icu-src/source/tools/icu-svnprops-check.py
trunk/Build/source/libs/icu/icu-src/source/tools/icuinfo/icuinfo.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/icuinfo/icuinfo.vcxproj
trunk/Build/source/libs/icu/icu-src/source/tools/icuinfo/testplug.c
trunk/Build/source/libs/icu/icu-src/source/tools/icuinfo/testplug.vcxproj
trunk/Build/source/libs/icu/icu-src/source/tools/icupkg/icupkg.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/icupkg/icupkg.vcxproj
trunk/Build/source/libs/icu/icu-src/source/tools/icuswap/icuswap.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/icuswap/icuswap.vcxproj
trunk/Build/source/libs/icu/icu-src/source/tools/makeconv/Makefile.in
trunk/Build/source/libs/icu/icu-src/source/tools/makeconv/gencnvex.c
trunk/Build/source/libs/icu/icu-src/source/tools/makeconv/genmbcs.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/makeconv/genmbcs.h
trunk/Build/source/libs/icu/icu-src/source/tools/makeconv/makeconv.1.in
trunk/Build/source/libs/icu/icu-src/source/tools/makeconv/makeconv.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/makeconv/makeconv.h
trunk/Build/source/libs/icu/icu-src/source/tools/makeconv/makeconv.vcxproj
trunk/Build/source/libs/icu/icu-src/source/tools/makeconv/ucnvstat.c
trunk/Build/source/libs/icu/icu-src/source/tools/pkgdata/Makefile.in
trunk/Build/source/libs/icu/icu-src/source/tools/pkgdata/pkgdata.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/pkgdata/pkgdata.vcxproj
trunk/Build/source/libs/icu/icu-src/source/tools/pkgdata/pkgtypes.c
trunk/Build/source/libs/icu/icu-src/source/tools/pkgdata/pkgtypes.h
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/Makefile.in
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/collationinfo.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/collationinfo.h
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/dbgutil.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/dbgutil.h
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/denseranges.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/denseranges.h
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/filestrm.h
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/filetools.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/filetools.h
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/flagparser.h
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/package.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/package.h
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/pkg_genc.h
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/pkg_gencmn.h
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/pkg_icu.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/pkg_icu.h
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/pkg_imp.h
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/pkgitems.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/ppucd.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/ppucd.h
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/swapimpl.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/swapimpl.h
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/toolutil.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/toolutil.h
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/toolutil.vcxproj
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/ucbuf.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/ucbuf.h
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/ucln_tu.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/ucm.h
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/udbgutil.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/udbgutil.h
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/unewdata.h
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/uoptions.h
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/uparse.h
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/writesrc.h
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/xmlparser.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/xmlparser.h
trunk/Build/source/libs/icu/icu-src/source/tools/tzcode/Makefile.in
trunk/Build/source/libs/icu/icu-src/source/tools/tzcode/icuregions
trunk/Build/source/libs/icu/icu-src/source/tools/tzcode/icuzdump.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/tzcode/icuzdump.vcxproj
trunk/Build/source/libs/icu/icu-src/source/tools/tzcode/icuzones
trunk/Build/source/libs/icu/icu-src/source/tools/tzcode/tz2icu.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/tzcode/tz2icu.h
trunk/Build/source/libs/icu/icu-src/source/tools/tzcode/zdump.c
trunk/Build/source/libs/icu/version.ac
Added Paths:
-----------
trunk/Build/source/libs/icu/icu-src/source/common/bytesinkutil.cpp
trunk/Build/source/libs/icu/icu-src/source/common/bytesinkutil.h
trunk/Build/source/libs/icu/icu-src/source/common/cmemory.cpp
trunk/Build/source/libs/icu/icu-src/source/common/common_uwp.vcxproj
trunk/Build/source/libs/icu/icu-src/source/common/cstring.cpp
trunk/Build/source/libs/icu/icu-src/source/common/cwchar.cpp
trunk/Build/source/libs/icu/icu-src/source/common/edits.cpp
trunk/Build/source/libs/icu/icu-src/source/common/icudataver.cpp
trunk/Build/source/libs/icu/icu-src/source/common/locmap.cpp
trunk/Build/source/libs/icu/icu-src/source/common/propsvec.cpp
trunk/Build/source/libs/icu/icu-src/source/common/rbbi_cache.cpp
trunk/Build/source/libs/icu/icu-src/source/common/rbbi_cache.h
trunk/Build/source/libs/icu/icu-src/source/common/uarrsort.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ubidi.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ubidi_props.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ubidiln.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ubiditransform.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ubidiwrt.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucasemap_imp.h
trunk/Build/source/libs/icu/icu-src/source/common/ucat.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uchar.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucmndata.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucnv.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_cb.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_cnv.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_ct.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_err.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_lmb.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_set.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_u16.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_u32.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_u7.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_u8.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucnvdisp.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucnvhz.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucnvisci.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucnvlat1.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ucnvscsu.cpp
trunk/Build/source/libs/icu/icu-src/source/common/udatamem.cpp
trunk/Build/source/libs/icu/icu-src/source/common/udataswp.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uenum.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uhash.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uinvchar.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ulist.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uloc_tag.cpp
trunk/Build/source/libs/icu/icu-src/source/common/umapfile.cpp
trunk/Build/source/libs/icu/icu-src/source/common/umath.cpp
trunk/Build/source/libs/icu/icu-src/source/common/unicode/casemap.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/char16ptr.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/edits.h
trunk/Build/source/libs/icu/icu-src/source/common/unicode/stringoptions.h
trunk/Build/source/libs/icu/icu-src/source/common/ures_cnv.cpp
trunk/Build/source/libs/icu/icu-src/source/common/usc_impl.cpp
trunk/Build/source/libs/icu/icu-src/source/common/uscript.cpp
trunk/Build/source/libs/icu/icu-src/source/common/ustrfmt.cpp
trunk/Build/source/libs/icu/icu-src/source/common/utf_impl.cpp
trunk/Build/source/libs/icu/icu-src/source/common/utrace.cpp
trunk/Build/source/libs/icu/icu-src/source/common/utypes.cpp
trunk/Build/source/libs/icu/icu-src/source/common/wintz.cpp
trunk/Build/source/libs/icu/icu-src/source/data/in/icudt60l.dat
trunk/Build/source/libs/icu/icu-src/source/data/makedata_uwp.vcxproj
trunk/Build/source/libs/icu/icu-src/source/i18n/decContext.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/decNumber.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/i18n_uwp.vcxproj
trunk/Build/source/libs/icu/icu-src/source/i18n/nounit.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/number_affixutils.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/number_affixutils.h
trunk/Build/source/libs/icu/icu-src/source/i18n/number_compact.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/number_compact.h
trunk/Build/source/libs/icu/icu-src/source/i18n/number_decimalquantity.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/number_decimalquantity.h
trunk/Build/source/libs/icu/icu-src/source/i18n/number_decimfmtprops.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/number_decimfmtprops.h
trunk/Build/source/libs/icu/icu-src/source/i18n/number_fluent.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/number_formatimpl.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/number_formatimpl.h
trunk/Build/source/libs/icu/icu-src/source/i18n/number_grouping.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/number_integerwidth.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/number_longnames.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/number_longnames.h
trunk/Build/source/libs/icu/icu-src/source/i18n/number_modifiers.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/number_modifiers.h
trunk/Build/source/libs/icu/icu-src/source/i18n/number_notation.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/number_padding.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/number_patternmodifier.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/number_patternmodifier.h
trunk/Build/source/libs/icu/icu-src/source/i18n/number_patternstring.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/number_patternstring.h
trunk/Build/source/libs/icu/icu-src/source/i18n/number_rounding.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/number_roundingutils.h
trunk/Build/source/libs/icu/icu-src/source/i18n/number_scientific.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/number_scientific.h
trunk/Build/source/libs/icu/icu-src/source/i18n/number_stringbuilder.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/number_stringbuilder.h
trunk/Build/source/libs/icu/icu-src/source/i18n/number_types.h
trunk/Build/source/libs/icu/icu-src/source/i18n/number_utils.h
trunk/Build/source/libs/icu/icu-src/source/i18n/ulocdata.cpp
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/nounit.h
trunk/Build/source/libs/icu/icu-src/source/i18n/unicode/numberformatter.h
trunk/Build/source/libs/icu/icu-src/source/i18n/utmscale.cpp
trunk/Build/source/libs/icu/icu-src/source/io/sprintf.cpp
trunk/Build/source/libs/icu/icu-src/source/io/sscanf.cpp
trunk/Build/source/libs/icu/icu-src/source/io/ufile.cpp
trunk/Build/source/libs/icu/icu-src/source/io/ufmt_cmn.cpp
trunk/Build/source/libs/icu/icu-src/source/io/uprntf_p.cpp
trunk/Build/source/libs/icu/icu-src/source/io/uscanf.cpp
trunk/Build/source/libs/icu/icu-src/source/io/uscanf_p.cpp
trunk/Build/source/libs/icu/icu-src/source/io/ustdio.cpp
trunk/Build/source/libs/icu/icu-src/source/stubdata/stubdata.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/numbertest.h
trunk/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_affixutils.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_api.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_decimalquantity.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_modifiers.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_patternmodifier.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_patternstring.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/numbertest_stringbuilder.cpp
trunk/Build/source/libs/icu/icu-src/source/test/intltest/punyref.cpp
trunk/Build/source/libs/icu/icu-src/source/test/testdata/IdnaTest.txt
trunk/Build/source/libs/icu/icu-src/source/test/testdata/emoji-test.txt
trunk/Build/source/libs/icu/icu-src/source/tools/escapesrc/
trunk/Build/source/libs/icu/icu-src/source/tools/escapesrc/Makefile.in
trunk/Build/source/libs/icu/icu-src/source/tools/escapesrc/cptbl.h
trunk/Build/source/libs/icu/icu-src/source/tools/escapesrc/escapesrc.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/escapesrc/expect-simple.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/escapesrc/tblgen.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/escapesrc/test-nochange.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/escapesrc/test-simple.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/gennorm2/extradata.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/gennorm2/extradata.h
trunk/Build/source/libs/icu/icu-src/source/tools/gennorm2/norms.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/gennorm2/norms.h
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/filestrm.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/flagparser.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/pkg_genc.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/pkg_gencmn.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/ucm.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/ucmstate.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/unewdata.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/uoptions.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/uparse.cpp
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/writesrc.cpp
Removed Paths:
-------------
trunk/Build/source/libs/icu/icu-src/source/common/cmemory.c
trunk/Build/source/libs/icu/icu-src/source/common/cstring.c
trunk/Build/source/libs/icu/icu-src/source/common/cwchar.c
trunk/Build/source/libs/icu/icu-src/source/common/icudataver.c
trunk/Build/source/libs/icu/icu-src/source/common/locmap.c
trunk/Build/source/libs/icu/icu-src/source/common/propsvec.c
trunk/Build/source/libs/icu/icu-src/source/common/uarrsort.c
trunk/Build/source/libs/icu/icu-src/source/common/ubidi.c
trunk/Build/source/libs/icu/icu-src/source/common/ubidi_props.c
trunk/Build/source/libs/icu/icu-src/source/common/ubidiln.c
trunk/Build/source/libs/icu/icu-src/source/common/ubiditransform.c
trunk/Build/source/libs/icu/icu-src/source/common/ubidiwrt.c
trunk/Build/source/libs/icu/icu-src/source/common/ucat.c
trunk/Build/source/libs/icu/icu-src/source/common/uchar.c
trunk/Build/source/libs/icu/icu-src/source/common/ucmndata.c
trunk/Build/source/libs/icu/icu-src/source/common/ucnv.c
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_cb.c
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_cnv.c
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_ct.c
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_err.c
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_lmb.c
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_set.c
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_u16.c
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_u32.c
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_u7.c
trunk/Build/source/libs/icu/icu-src/source/common/ucnv_u8.c
trunk/Build/source/libs/icu/icu-src/source/common/ucnvdisp.c
trunk/Build/source/libs/icu/icu-src/source/common/ucnvhz.c
trunk/Build/source/libs/icu/icu-src/source/common/ucnvisci.c
trunk/Build/source/libs/icu/icu-src/source/common/ucnvlat1.c
trunk/Build/source/libs/icu/icu-src/source/common/ucnvscsu.c
trunk/Build/source/libs/icu/icu-src/source/common/udatamem.c
trunk/Build/source/libs/icu/icu-src/source/common/udataswp.c
trunk/Build/source/libs/icu/icu-src/source/common/uenum.c
trunk/Build/source/libs/icu/icu-src/source/common/uhash.c
trunk/Build/source/libs/icu/icu-src/source/common/uinvchar.c
trunk/Build/source/libs/icu/icu-src/source/common/ulist.c
trunk/Build/source/libs/icu/icu-src/source/common/uloc_tag.c
trunk/Build/source/libs/icu/icu-src/source/common/umapfile.c
trunk/Build/source/libs/icu/icu-src/source/common/umath.c
trunk/Build/source/libs/icu/icu-src/source/common/ures_cnv.c
trunk/Build/source/libs/icu/icu-src/source/common/usc_impl.c
trunk/Build/source/libs/icu/icu-src/source/common/uscript.c
trunk/Build/source/libs/icu/icu-src/source/common/ustrfmt.c
trunk/Build/source/libs/icu/icu-src/source/common/utf_impl.c
trunk/Build/source/libs/icu/icu-src/source/common/utrace.c
trunk/Build/source/libs/icu/icu-src/source/common/utypes.c
trunk/Build/source/libs/icu/icu-src/source/common/wintz.c
trunk/Build/source/libs/icu/icu-src/source/data/in/icudt58l.dat
trunk/Build/source/libs/icu/icu-src/source/data/misc/
trunk/Build/source/libs/icu/icu-src/source/data/unit/
trunk/Build/source/libs/icu/icu-src/source/i18n/decContext.c
trunk/Build/source/libs/icu/icu-src/source/i18n/decNumber.c
trunk/Build/source/libs/icu/icu-src/source/i18n/ulocdata.c
trunk/Build/source/libs/icu/icu-src/source/i18n/utmscale.c
trunk/Build/source/libs/icu/icu-src/source/io/sprintf.c
trunk/Build/source/libs/icu/icu-src/source/io/sscanf.c
trunk/Build/source/libs/icu/icu-src/source/io/ufile.c
trunk/Build/source/libs/icu/icu-src/source/io/ufmt_cmn.c
trunk/Build/source/libs/icu/icu-src/source/io/uprntf_p.c
trunk/Build/source/libs/icu/icu-src/source/io/uscanf.c
trunk/Build/source/libs/icu/icu-src/source/io/uscanf_p.c
trunk/Build/source/libs/icu/icu-src/source/io/ustdio.c
trunk/Build/source/libs/icu/icu-src/source/stubdata/stubdata.c
trunk/Build/source/libs/icu/icu-src/source/test/intltest/punyref.c
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/filestrm.c
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/flagparser.c
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/pkg_genc.c
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/pkg_gencmn.c
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/ucm.c
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/ucmstate.c
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/unewdata.c
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/uoptions.c
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/uparse.c
trunk/Build/source/libs/icu/icu-src/source/tools/toolutil/writesrc.c
Modified: trunk/Build/source/libs/README
===================================================================
--- trunk/Build/source/libs/README 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/README 2018-01-12 18:35:28 UTC (rev 46290)
@@ -27,7 +27,7 @@
harfbuzz 1.7.4 - checked 20dec17
http://www.freedesktop.org/software/harfbuzz/release/
-icu 58.2 - checked 13mar17
+icu 60.2 - checked 11jan18
http://download.icu-project.org/files/icu4c/
libpaper 1.1.24+nmu2 - checked 24oct13
Modified: trunk/Build/source/libs/icu/ChangeLog
===================================================================
--- trunk/Build/source/libs/icu/ChangeLog 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/ChangeLog 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,3 +1,7 @@
+2018-01-12 Karl Berry <karl at freefriends.org>
+
+ * Import icu-60, now requiring C++11; reautoconf.
+
2017-04-27 Karl Berry <karl at tug.org>
* Makefile.am (LDADD): link icutest with ICU_LIBS_EXTRA.
Modified: trunk/Build/source/libs/icu/TLpatches/TL-Changes
===================================================================
--- trunk/Build/source/libs/icu/TLpatches/TL-Changes 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/TLpatches/TL-Changes 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,11 +1,11 @@
-Changes applied to the icu-58.2 tree as obtained from:
- http://download.icu-project.org/files/icu4c/58.2/icu4c-58_2-src.tgz
- and icu4c-58_2-data.zip
+Changes applied to the icu-60.2 tree as obtained from:
+ http://download.icu-project.org/files/icu4c/60.2/icu4c-60_2-src.tgz
+ and icu4c-60_2-data.zip
-cd /tmp # or wherever
-tar xf icu4c-*-src.tgz # should unpack into icu/*
-cd $Build/source/libs/icu/icu-src # for whatever $Build directory
-\cp -arf /tmp/icu/* .
+cd $Build/source/libs/icu # for whatever $Build directory
+tar xf /tmp/icu4c-*-src.tgz # should unpack into icu/*
+mv icu icu-src
+cd icu-src
rm -r as_is packaging # don't bother including these in our tree
#
# files to add:
@@ -14,21 +14,22 @@
svn status | sed -n 's/^\?//p' # rerun, should be empty now
#
# files to remove:
-diff -qr . /tmp/icu/ | sed -n -e 's,^Only in \./\(.*\): ,\1/,p'
+svn status | sed -n 's/^\!//p'
svn rm `!!`
-diff ... # rerun, should be empty now
+svn status | sed -n 's/^\!//p' # rerun, should be empty now
# update generic files (still in icu-src):
aux=$Build/source/build-aux
-cp -p $aux/config.guess $aux/config.sub $aux/install-sh source/
+cp -p $aux/config.guess $aux/config.sub $aux/install-sh source
# patch -p0 for all ../TLpatches/patch-* files, as needed.
-# Run svn diff after each, update patch-* file.
+# Save original and diff after each, update patch-* file.
# Don't lose our leading comments.
# autoreconf in the TL directory; don't run autoreconf in the
# icu-src/source/ directory, it fails due to missing pkg-config
-# prerequisites. (Thus we must patch configure, not just configure.ac.)
+# prerequisites. (Thus we must patch configure, not just configure.ac;
+# not worth more effort for our small change of preferring gcc.)
#
# rebuild; must rerun configure (not just config.status),
# so easiest is to just do a whole new build.
Modified: trunk/Build/source/libs/icu/TLpatches/patch-14-xopen
===================================================================
--- trunk/Build/source/libs/icu/TLpatches/patch-14-xopen 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/TLpatches/patch-14-xopen 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,10 +1,8 @@
Do not define _XOPEN_SOURCE_EXTENDED on Solaris,
notwithstanding comments in icu source.
-Index: source/common/uposixdefs.h
-===================================================================
---- source/common/uposixdefs.h (revision 43491)
-+++ source/common/uposixdefs.h (working copy)
+--- /tmp/up 2018-01-11 11:05:06.218484133 -0800
++++ source/common/uposixdefs.h 2018-01-11 11:07:11.006686446 -0800
@@ -51,10 +51,13 @@
* Make sure things like readlink and such functions work.
* Poorly upgraded Solaris machines can't have this defined.
@@ -15,8 +13,8 @@
*
* z/OS needs this definition for timeval and to get usleep.
*/
--#if !defined(_XOPEN_SOURCE_EXTENDED)
-+#if !defined(_XOPEN_SOURCE_EXTENDED) && !defined(__sun)
+-#if !defined(_XOPEN_SOURCE_EXTENDED) && defined(__TOS_MVS__)
++#if !defined(_XOPEN_SOURCE_EXTENDED) && defined(__TOS_MVS__) && !defined(sun)
# define _XOPEN_SOURCE_EXTENDED 1
#endif
Modified: trunk/Build/source/libs/icu/TLpatches/patch-16-putil
===================================================================
--- trunk/Build/source/libs/icu/TLpatches/patch-16-putil 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/TLpatches/patch-16-putil 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,49 +1,15 @@
tzset and mingw/cygwin.
-Index: source/common/putil.cpp
-===================================================================
---- source/common/putil.cpp (revision 43491)
-+++ source/common/putil.cpp (working copy)
-@@ -43,6 +43,20 @@
- // Must be before any other #includes.
- #include "uposixdefs.h"
+--- /tmp/putil.cpp 2017-10-31 12:04:49.000000000 -0700
++++ source/common/putil.cpp 2018-01-11 11:10:30.895806863 -0800
+@@ -46,8 +46,8 @@
+ // First, the platform type. Need this for U_PLATFORM.
+ #include "unicode/platform.h"
-+#if (U_PF_MINGW <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN) && defined(__STRICT_ANSI__)
+-#if U_PLATFORM == U_PF_MINGW && defined __STRICT_ANSI__
+-/* tzset isn't defined in strict ANSI on MinGW. */
++#if (U_PF_CYGWIN <= U_PLATFORM && defined(__STRICT_ANSI__)
+/* tzset isn't defined in strict ANSI on Cygwin and MinGW. */
-+#undef __STRICT_ANSI__
-+#endif
-+
-+/*
-+ * Cygwin with GCC requires inclusion of time.h after the above disabling strict asci mode statement.
-+ */
-+#include <time.h>
-+
-+#if !U_PLATFORM_USES_ONLY_WIN32_API
-+#include <sys/time.h>
-+#endif
-+
- /* include ICU headers */
- #include "unicode/utypes.h"
- #include "unicode/putil.h"
-@@ -104,21 +118,7 @@
- # include <sys/neutrino.h>
+ #undef __STRICT_ANSI__
#endif
--#if (U_PF_MINGW <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN) && defined(__STRICT_ANSI__)
--/* tzset isn't defined in strict ANSI on Cygwin and MinGW. */
--#undef __STRICT_ANSI__
--#endif
--
- /*
-- * Cygwin with GCC requires inclusion of time.h after the above disabling strict asci mode statement.
-- */
--#include <time.h>
--
--#if !U_PLATFORM_USES_ONLY_WIN32_API
--#include <sys/time.h>
--#endif
--
--/*
- * Only include langinfo.h if we have a way to get the codeset. If we later
- * depend on more feature, we can test on U_HAVE_NL_LANGINFO.
- *
Modified: trunk/Build/source/libs/icu/TLpatches/patch-17-cygwin-no-w32api
===================================================================
--- trunk/Build/source/libs/icu/TLpatches/patch-17-cygwin-no-w32api 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/TLpatches/patch-17-cygwin-no-w32api 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,5 +1,8 @@
_HAS_ -> _USES_ONLY_ for WIN32_API and Cygwin.
+Not applied for icu-60.2, since it seems some (but not all) of changes
+have been installed upstream.
+
Index: source/common/umutex.h
===================================================================
--- source/common/umutex.h (revision 43491)
Modified: trunk/Build/source/libs/icu/TLpatches/patch-19-netbsd
===================================================================
--- trunk/Build/source/libs/icu/TLpatches/patch-19-netbsd 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/TLpatches/patch-19-netbsd 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,9 +1,9 @@
Per Marc Baudoin, tlbuild 17 Mar 2017 10:03:03.
-Index: digitlst.cpp
-===================================================================
---- digitlst.cpp (revision 43522)
-+++ digitlst.cpp (working copy)
+Not applied for icu-60.2, since they have a new U_HAVE_XLOCALE_H.
+
+--- source/i18n/digitlst.cpp (revision 43522)
++++ source/i18n/digitlst.cpp (working copy)
@@ -61,7 +61,7 @@
#endif
Modified: trunk/Build/source/libs/icu/configure
===================================================================
--- trunk/Build/source/libs/icu/configure 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/configure 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for icu (TeX Live) 58.2.
+# Generated by GNU Autoconf 2.69 for icu (TeX Live) 60.2.
#
# Report bugs to <tex-k at tug.org>.
#
@@ -579,8 +579,8 @@
# Identity of this package.
PACKAGE_NAME='icu (TeX Live)'
PACKAGE_TARNAME='icu--tex-live-'
-PACKAGE_VERSION='58.2'
-PACKAGE_STRING='icu (TeX Live) 58.2'
+PACKAGE_VERSION='60.2'
+PACKAGE_STRING='icu (TeX Live) 60.2'
PACKAGE_BUGREPORT='tex-k at tug.org'
PACKAGE_URL=''
@@ -1258,7 +1258,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures icu (TeX Live) 58.2 to adapt to many kinds of systems.
+\`configure' configures icu (TeX Live) 60.2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1328,7 +1328,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of icu (TeX Live) 58.2:";;
+ short | recursive ) echo "Configuration of icu (TeX Live) 60.2:";;
esac
cat <<\_ACEOF
@@ -1426,7 +1426,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-icu (TeX Live) configure 58.2
+icu (TeX Live) configure 60.2
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1565,7 +1565,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by icu (TeX Live) $as_me 58.2, which was
+It was created by icu (TeX Live) $as_me 60.2, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3488,7 +3488,7 @@
# Define the identity of the package.
PACKAGE='icu--tex-live-'
- VERSION='58.2'
+ VERSION='60.2'
cat >>confdefs.h <<_ACEOF
@@ -4866,7 +4866,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by icu (TeX Live) $as_me 58.2, which was
+This file was extended by icu (TeX Live) $as_me 60.2, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -4923,7 +4923,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-icu (TeX Live) config.status 58.2
+icu (TeX Live) config.status 60.2
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
Modified: trunk/Build/source/libs/icu/icu-src/APIChangeReport.html
===================================================================
--- trunk/Build/source/libs/icu/icu-src/APIChangeReport.html 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/APIChangeReport.html 2018-01-12 18:35:28 UTC (rev 46290)
@@ -5,31 +5,31 @@
-->
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>ICU4C API Comparison: ICU 57 with ICU 58</title>
+<title>ICU4C API Comparison: ICU 59 with ICU 60</title>
<link type="text/css" href="icu4c.css" rel="stylesheet">
</head>
<body>
<a name="#_top"></a>
-<h1>ICU4C API Comparison: ICU 57 with ICU 58</h1>
+<h1>ICU4C API Comparison: ICU 59 with ICU 60</h1>
<div id="toc">
<ul>
<li>
-<a href="#removed">Removed from ICU 57</a>
+<a href="#removed">Removed from ICU 59</a>
</li>
<li>
-<a href="#deprecated">Deprecated or Obsoleted in ICU 58</a>
+<a href="#deprecated">Deprecated or Obsoleted in ICU 60</a>
</li>
<li>
-<a href="#changed">Changed in ICU 58</a>
+<a href="#changed">Changed in ICU 60</a>
</li>
<li>
-<a href="#promoted">Promoted to stable in ICU 58</a>
+<a href="#promoted">Promoted to stable in ICU 60</a>
</li>
<li>
-<a href="#added">Added in ICU 58</a>
+<a href="#added">Added in ICU 60</a>
</li>
<li>
-<a href="#other">Other existing drafts in ICU 58</a>
+<a href="#other">Other existing drafts in ICU 60</a>
</li>
<li>
<a href="#purevirtual">Signature Simplifications</a><sup style="background-color: yellow; font-size: smallest;">(new)</sup>
@@ -38,3149 +38,1293 @@
<hr>
</div>
<a name="removed"></a>
-<h2>Removed from ICU 57</h2>
+<h2>Removed from ICU 59</h2>
<table BORDER="1" class="genTable">
<THEAD>
<tr>
-<th>File</th><th>API</th><th>ICU 57</th><th>ICU 58</th>
+<th>File</th><th>API</th><th>ICU 59</th><th>ICU 60</th>
</tr>
</THEAD>
<tr class="row1">
-<td class="file">bytestrie.h</td><td class="proto">const StringPiece& icu::BytesTrie::Iterator::getString()</td><td class="stabchange">Stable<br>ICU 4.8</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">decimfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::DecimalFormat::ERoundingMode {}</td><td class="stabchange">Stable<br>ICU 2.4</td><td>(moved to numfmt.h)<br></td>
</tr>
<tr class="row0">
-<td class="file">bytestriebuilder.h</td><td class="proto">BytesTrieBuilder& icu::BytesTrieBuilder::add(const StringPiece&, int32_t, UErrorCode&)</td><td class="stabchange">Stable<br>ICU 4.8</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">decimfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::DecimalFormat::ERoundingMode::kRoundCeiling</td><td class="stabchange">Stable<br>ICU 2.4</td><td>(moved to numfmt.h)<br></td>
</tr>
<tr class="row1">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString& icu::CompactDecimalFormat::format(const StringPiece&, UnicodeString&, FieldPositionIterator*, UErrorCode&)</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">decimfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::DecimalFormat::ERoundingMode::kRoundDown</td><td class="stabchange">Stable<br>ICU 2.4</td><td>(moved to numfmt.h)<br></td>
</tr>
<tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString& icu::DecimalFormat::format(const StringPiece&, UnicodeString&, FieldPositionIterator*, UErrorCode&)</td><td class="stabchange">Stable</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">decimfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::DecimalFormat::ERoundingMode::kRoundFloor</td><td class="stabchange">Stable<br>ICU 2.4</td><td>(moved to numfmt.h)<br></td>
</tr>
<tr class="row1">
-<td class="file">fmtable.h</td><td class="proto">icu::Formattable::Formattable(const StringPiece&, UErrorCode&)</td><td class="stabchange">Stable<br>ICU 4.4</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">decimfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::DecimalFormat::ERoundingMode::kRoundHalfDown</td><td class="stabchange">Stable<br>ICU 2.4</td><td>(moved to numfmt.h)<br></td>
</tr>
<tr class="row0">
-<td class="file">fmtable.h</td><td class="proto">void icu::Formattable::setDecimalNumber(const StringPiece&, UErrorCode&)</td><td class="stabchange">Stable<br>ICU 4.4</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">decimfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::DecimalFormat::ERoundingMode::kRoundHalfEven</td><td class="stabchange">Stable<br>ICU 2.4</td><td>(moved to numfmt.h)<br></td>
</tr>
<tr class="row1">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::labelToASCII_UTF8(const StringPiece&, ByteSink&, IDNAInfo&, UErrorCode&)</td><td class="stabchange">Stable<br>ICU 4.6</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">decimfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::DecimalFormat::ERoundingMode::kRoundHalfUp</td><td class="stabchange">Stable<br>ICU 2.4</td><td>(moved to numfmt.h)<br></td>
</tr>
<tr class="row0">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::labelToUnicodeUTF8(const StringPiece&, ByteSink&, IDNAInfo&, UErrorCode&)</td><td class="stabchange">Stable<br>ICU 4.6</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">decimfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::DecimalFormat::ERoundingMode::kRoundUnnecessary</td><td class="stabchange">Stable<br>ICU 4.8</td><td>(moved to numfmt.h)<br></td>
</tr>
<tr class="row1">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::nameToASCII_UTF8(const StringPiece&, ByteSink&, IDNAInfo&, UErrorCode&)</td><td class="stabchange">Stable<br>ICU 4.6</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">decimfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::DecimalFormat::ERoundingMode::kRoundUp</td><td class="stabchange">Stable<br>ICU 2.4</td><td>(moved to numfmt.h)<br></td>
</tr>
<tr class="row0">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::nameToUnicodeUTF8(const StringPiece&, ByteSink&, IDNAInfo&, UErrorCode&)</td><td class="stabchange">Stable<br>ICU 4.6</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">platform.h</td><td class="proto"><tt>#define</tt> U_IOSTREAM_SOURCE</td><td class="">Internal</td><td>(missing)<br></td>
</tr>
<tr class="row1">
-<td class="file">LayoutEngine.h</td><td class="proto">UClassID icu::LayoutEngine::getDynamicClassID()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">plurrule.h</td><td class="proto">UnicodeString icu::PluralRules::select(const FixedDecimal&)</td><td class="">Internal</td><td>(missing)<br></td>
</tr>
<tr class="row0">
-<td class="file">LayoutEngine.h</td><td class="proto">icu::LayoutEngine::~LayoutEngine()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">ucasemap.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_NO_BREAK_ADJUSTMENT</td><td class="stabchange">Stable<br>ICU 3.8</td><td>(moved to new stringoptions.h)<br></td>
</tr>
<tr class="row1">
-<td class="file">LayoutEngine.h</td><td class="proto">le_int32 icu::LayoutEngine::getGlyphCount()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">ucasemap.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_NO_LOWERCASE</td><td class="stabchange">Stable<br>ICU 3.8</td><td>(moved to new stringoptions.h)<br></td>
</tr>
<tr class="row0">
-<td class="file">LayoutEngine.h</td><td class="proto">le_int32 icu::LayoutEngine::layoutChars(const LEUnicode chars[], le_int32, le_int32, le_int32, le_bool, float, float, LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">ucasemap.h</td><td class="proto"><tt>#define</tt> UCASEMAP_OMIT_UNCHANGED_TEXT</td><td class="">Draft<br>ICU 59</td><td>(missing)<br></td>
</tr>
<tr class="row1">
-<td class="file">LayoutEngine.h</td><td class="proto"><tt>static</tt> LayoutEngine* icu::LayoutEngine::layoutEngineFactory(const LEFontInstance*, le_int32, le_int32, LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>#define</tt> U_FOLD_CASE_DEFAULT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>(moved to new stringoptions.h)<br></td>
</tr>
<tr class="row0">
-<td class="file">LayoutEngine.h</td><td class="proto"><tt>static</tt> LayoutEngine* icu::LayoutEngine::layoutEngineFactory(const LEFontInstance*, le_int32, le_int32, le_int32, LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>#define</tt> U_FOLD_CASE_EXCLUDE_SPECIAL_I</td><td class="stabchange">Stable<br>ICU 2.0</td><td>(moved to new stringoptions.h)<br></td>
</tr>
<tr class="row1">
-<td class="file">LayoutEngine.h</td><td class="proto"><tt>static</tt> UClassID icu::LayoutEngine::getStaticClassID()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">unorm2.h</td><td class="proto"><tt>#define</tt> U_COMPARE_CODE_POINT_ORDER</td><td class="stabchange">Stable<br>ICU 2.2</td><td>(moved to new stringoptions.h)<br></td>
</tr>
<tr class="row0">
-<td class="file">LayoutEngine.h</td><td class="proto"><tt>static</tt> const le_int32 icu::LayoutEngine::kTypoFlagKern</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">unorm2.h</td><td class="proto"><tt>#define</tt> U_COMPARE_IGNORE_CASE</td><td class="stabchange">Stable<br>ICU 2.2</td><td>(moved to new stringoptions.h)<br></td>
</tr>
<tr class="row1">
-<td class="file">LayoutEngine.h</td><td class="proto"><tt>static</tt> const le_int32 icu::LayoutEngine::kTypoFlagLiga</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">unorm2.h</td><td class="proto"><tt>#define</tt> UNORM_INPUT_IS_FCD</td><td class="stabchange">Stable<br>ICU 2.2</td><td>(moved to new stringoptions.h)<br></td>
</tr>
<tr class="row0">
-<td class="file">LayoutEngine.h</td><td class="proto">void icu::LayoutEngine::getCharIndices(le_int32 charIndices[], LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">ustring.h</td><td class="proto"><tt>#define</tt> U_COMPARE_CODE_POINT_ORDER</td><td class="stabchange">Stable<br>ICU 2.2</td><td>(moved to new stringoptions.h)<br></td>
</tr>
-<tr class="row1">
-<td class="file">LayoutEngine.h</td><td class="proto">void icu::LayoutEngine::getCharIndices(le_int32 charIndices[], le_int32, LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+</table>
+<P></P>
+<a href="#_top">(jump back to top)</a>
+<hr>
+<a name="deprecated"></a>
+<h2>Deprecated or Obsoleted in ICU 60</h2>
+<table BORDER="1" class="genTable">
+<THEAD>
+<tr>
+<th>File</th><th>API</th><th>ICU 59</th><th>ICU 60</th>
</tr>
-<tr class="row0">
-<td class="file">LayoutEngine.h</td><td class="proto">void icu::LayoutEngine::getGlyphPosition(le_int32, float&, float&, LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
+</THEAD>
<tr class="row1">
-<td class="file">LayoutEngine.h</td><td class="proto">void icu::LayoutEngine::getGlyphPositions(float positions[], LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">filteredbrk.h</td><td class="proto">BreakIterator* icu::FilteredBreakIteratorBuilder::build(BreakIterator*, UErrorCode&)</td><td class="stabchange">Stable<br>ICU 56</td><td>Deprecated<br>
+<span class="verchange"><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">LayoutEngine.h</td><td class="proto">void icu::LayoutEngine::getGlyphs(LEGlyphID glyphs[], LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">filteredbrk.h</td><td class="proto"><tt>static</tt> FilteredBreakIteratorBuilder* icu::FilteredBreakIteratorBuilder::createInstance(UErrorCode&)</td><td class="stabchange">Stable<br>ICU 56</td><td>Deprecated<br>
+<span class="verchange"><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">LayoutEngine.h</td><td class="proto">void icu::LayoutEngine::getGlyphs(le_uint32 glyphs[], le_uint32, LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">utf_old.h</td><td class="proto"><tt>#define</tt> U_HIDE_OBSOLETE_UTF_OLD_H</td><td class="">(missing)</td><td>Deprecated<br>
+<span class=""><span>ICU 2.4</span></span></td>
</tr>
-<tr class="row0">
-<td class="file">LayoutEngine.h</td><td class="proto">void icu::LayoutEngine::reset()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+</table>
+<P></P>
+<a href="#_top">(jump back to top)</a>
+<hr>
+<a name="changed"></a>
+<h2>Changed in ICU 60 (old, new)</h2>
+<table BORDER="1" class="genTable">
+<THEAD>
+<tr>
+<th>File</th><th>API</th><th>ICU 59</th><th>ICU 60</th>
</tr>
+</THEAD>
<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">LEGlyphID icu::LEFontInstance::mapCharToGlyph(LEUnicode32)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">filteredbrk.h</td><td class="proto">BreakIterator* icu::FilteredBreakIteratorBuilder::build(BreakIterator*, UErrorCode&)</td><td class="stabchange">Stable<br>ICU 56</td><td>Deprecated<br>
+<span class="verchange"><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">LEGlyphID icu::LEFontInstance::mapCharToGlyph(LEUnicode32, const LECharMapper*)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">filteredbrk.h</td><td class="proto"><tt>static</tt> FilteredBreakIteratorBuilder* icu::FilteredBreakIteratorBuilder::createInstance(UErrorCode&)</td><td class="stabchange">Stable<br>ICU 56</td><td>Deprecated<br>
+<span class="verchange"><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">LEGlyphID icu::LEFontInstance::mapCharToGlyph(LEUnicode32, const LECharMapper*, le_bool)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">measfmt.h</td><td class="proto">UnicodeString icu::MeasureFormat::getUnitDisplayName(const MeasureUnit&, UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">LEUnicode32 icu::LECharMapper::mapChar(LEUnicode32)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">ubiditransform.h</td><td class="proto">UBiDiTransform* ubiditransform_open(UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">UClassID icu::LEFontInstance::getDynamicClassID()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">ubiditransform.h</td><td class="proto"><tt>enum</tt> UBiDiMirroring::UBIDI_MIRRORING_OFF</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">const LEFontInstance* icu::LEFontInstance::getSubFont(const LEUnicode chars[], le_int32*, le_int32, le_int32, LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">ubiditransform.h</td><td class="proto"><tt>enum</tt> UBiDiMirroring::UBIDI_MIRRORING_ON</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">const void* icu::LEFontInstance::getFontTable(LETag, size_t&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">ubiditransform.h</td><td class="proto"><tt>enum</tt> UBiDiOrder::UBIDI_LOGICAL</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">float icu::LEFontInstance::getScaleFactorX()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">ubiditransform.h</td><td class="proto"><tt>enum</tt> UBiDiOrder::UBIDI_VISUAL</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">float icu::LEFontInstance::getScaleFactorY()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">ubiditransform.h</td><td class="proto">uint32_t ubiditransform_transform(UBiDiTransform*, const UChar*, int32_t, UChar*, int32_t, UBiDiLevel, UBiDiOrder, UBiDiLevel, UBiDiOrder, UBiDiMirroring, uint32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">float icu::LEFontInstance::getXPixelsPerEm()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">ubiditransform.h</td><td class="proto">void ubiditransform_close(UBiDiTransform*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">float icu::LEFontInstance::getYPixelsPerEm()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">udisplaycontext.h</td><td class="proto"><tt>enum</tt> UDisplayContext::UDISPCTX_NO_SUBSTITUTE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">float icu::LEFontInstance::xPixelsToUnits(float)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">udisplaycontext.h</td><td class="proto"><tt>enum</tt> UDisplayContext::UDISPCTX_SUBSTITUTE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">float icu::LEFontInstance::xUnitsToPoints(float)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">udisplaycontext.h</td><td class="proto"><tt>enum</tt> UDisplayContextType::UDISPCTX_TYPE_SUBSTITUTE_HANDLING</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">float icu::LEFontInstance::yPixelsToUnits(float)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">uspoof.h</td><td class="proto">URestrictionLevel uspoof_getCheckResultRestrictionLevel(const USpoofCheckResult*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">float icu::LEFontInstance::yUnitsToPoints(float)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">uspoof.h</td><td class="proto">USpoofCheckResult* uspoof_openCheckResult(UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">icu::LECharMapper::~LECharMapper()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">uspoof.h</td><td class="proto">U_NAMESPACE_END int32_t uspoof_getCheckResultChecks(const USpoofCheckResult*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">icu::LEFontInstance::~LEFontInstance()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">uspoof.h</td><td class="proto">const USet* uspoof_getCheckResultNumerics(const USpoofCheckResult*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">le_bool icu::LEFontInstance::canDisplay(LEUnicode32)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">uspoof.h</td><td class="proto"><tt>enum</tt> USpoofChecks::USPOOF_CONFUSABLE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">le_bool icu::LEFontInstance::getGlyphPoint(LEGlyphID, le_int32, LEPoint&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_check2(const USpoofChecker*, const UChar*, int32_t, USpoofCheckResult*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">le_int32 icu::LEFontInstance::getAscent()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_check2UTF8(const USpoofChecker*, const char*, int32_t, USpoofCheckResult*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">le_int32 icu::LEFontInstance::getDescent()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_check2UnicodeString(const USpoofChecker*, const icu::UnicodeString&, USpoofCheckResult*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">le_int32 icu::LEFontInstance::getLeading()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
+<td class="file">uspoof.h</td><td class="proto">void uspoof_closeCheckResult(USpoofCheckResult*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
-<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">le_int32 icu::LEFontInstance::getLineHeight()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">le_int32 icu::LEFontInstance::getUnitsPerEM()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto"><tt>static</tt> UClassID icu::LEFontInstance::getStaticClassID()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto"><tt>static</tt> float icu::LEFontInstance::fixedToFloat(le_int32)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto"><tt>static</tt> le_int32 icu::LEFontInstance::floatToFixed(float)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">void icu::LEFontInstance::getGlyphAdvance(LEGlyphID, LEPoint&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">void icu::LEFontInstance::mapCharsToGlyphs(const LEUnicode chars[], le_int32, le_int32, le_bool, const LECharMapper*, le_bool, LEGlyphStorage&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">void icu::LEFontInstance::pixelsToUnits(LEPoint&, LEPoint&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEFontInstance.h</td><td class="proto">void icu::LEFontInstance::transformFunits(float, float, LEPoint&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEFontInstance.h</td><td class="proto">void icu::LEFontInstance::unitsToPoints(LEPoint&, LEPoint&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">LEGlyphID icu::LEGlyphStorage::getGlyphID(le_int32, LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">LEGlyphID& icu::LEGlyphStorage::operator[](le_int32)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">LEGlyphID* icu::LEGlyphStorage::insertGlyphs(le_int32, le_int32)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">LEGlyphID* icu::LEGlyphStorage::insertGlyphs(le_int32, le_int32, LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">UClassID icu::LEGlyphStorage::getDynamicClassID()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">icu::LEGlyphStorage::LEGlyphStorage()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">icu::LEGlyphStorage::~LEGlyphStorage()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">le_int32 icu::LEGlyphStorage::allocateAuxData(LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">le_int32 icu::LEGlyphStorage::allocatePositions(LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">le_int32 icu::LEGlyphStorage::applyInsertions()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">le_int32 icu::LEGlyphStorage::getCharIndex(le_int32, LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">le_int32 icu::LEGlyphStorage::getGlyphCount()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">le_uint32 icu::LEGlyphStorage::getAuxData(le_int32, LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto"><tt>static</tt> UClassID icu::LEGlyphStorage::getStaticClassID()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::adjustPosition(le_int32, float, float, LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::adoptAuxDataArray(LEGlyphStorage&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::adoptCharIndicesArray(LEGlyphStorage&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::adoptGlyphArray(LEGlyphStorage&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::adoptGlyphCount(LEGlyphStorage&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::adoptGlyphCount(le_int32)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::adoptPositionArray(LEGlyphStorage&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::allocateGlyphArray(le_int32, le_bool, LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::getAuxData(le_uint32 auxData[], LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::getCharIndices(le_int32 charIndices[], LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::getCharIndices(le_int32 charIndices[], le_int32, LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::getGlyphPosition(le_int32, float&, float&, LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::getGlyphPositions(float positions[], LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::getGlyphs(LEGlyphID glyphs[], LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::getGlyphs(le_uint32 glyphs[], le_uint32, LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::moveGlyph(le_int32, le_int32, le_uint32)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::reset()</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::setAuxData(le_int32, le_uint32, LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::setCharIndex(le_int32, le_int32, LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::setGlyphID(le_int32, LEGlyphID, LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LEGlyphStorage.h</td><td class="proto">void icu::LEGlyphStorage::setPosition(le_int32, float, float, LEErrorCode&)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LESwaps.h</td><td class="proto"><tt>#define</tt> SWAPL</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LESwaps.h</td><td class="proto"><tt>#define</tt> SWAPW</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LESwaps.h</td><td class="proto"><tt>static</tt> le_uint16 icu::LESwaps::swapWord(le_uint16)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LESwaps.h</td><td class="proto"><tt>static</tt> le_uint32 icu::LESwaps::swapLong(le_uint32)</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_AFRC_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_ARRAY_COPY</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_ARRAY_SIZE</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_ASSERT_BAD_FONT</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_CHAR_FILTER_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_CLIENT_MASK</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_CLIENT_SHIFT</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_CLIG_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_CSWH_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_DEBUG_BAD_FONT</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_DEFAULT_FEATURE_FLAG</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_DELETE_ARRAY</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_DLIG_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_FAILURE</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_FRAC_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_GET_CLIENT</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_GET_GLYPH</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_GET_SUB_FONT</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_GLYPH_MASK</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_GLYPH_SHIFT</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_GROW_ARRAY</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_HLIG_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_Kerning_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_LIGA_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_Ligatures_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_MAKE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_NALT_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_NEW_ARRAY</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_RANGE_CHECK</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_RLIG_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_RUBY_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SALT_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SET_CLIENT</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SET_GLYPH</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SET_SUB_FONT</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SMCP_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SS01_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SS02_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SS03_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SS04_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SS05_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SS06_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SS07_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SUB_FONT_MASK</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SUB_FONT_SHIFT</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SUCCESS</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_SWSH_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_UINT32_MAX</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_UINTPTR_MAX</td><td class=""><i>(untagged)</i></td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>#define</tt> LE_ZERO_FEATURE_FLAG</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEErrorCode::LE_FONT_FILE_NOT_FOUND_ERROR</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEErrorCode::LE_ILLEGAL_ARGUMENT_ERROR</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEErrorCode::LE_INDEX_OUT_OF_BOUNDS_ERROR</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEErrorCode::LE_INTERNAL_ERROR</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEErrorCode::LE_MEMORY_ALLOCATION_ERROR</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEErrorCode::LE_MISSING_FONT_TABLE_ERROR</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEErrorCode::LE_NO_ERROR</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEErrorCode::LE_NO_LAYOUT_ERROR</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEErrorCode::LE_NO_SUBFONT_WARNING</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_AFRC_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_CHAR_FILTER_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_CLIG_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_CSWH_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_DLIG_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_FEATURE_ENUM_MAX</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_FRAC_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_HLIG_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_Kerning_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_LIGA_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_Ligatures_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_NALT_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_RLIG_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_RUBY_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_SALT_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_SMCP_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_SS01_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_SS02_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_SS03_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_SS04_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_SS05_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_SS06_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_SS07_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_SWSH_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureENUMs::LE_ZERO_FEATURE_ENUM</td><td class="">Internal</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_AALT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_ABVF_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_ABVM_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_ABVS_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_AFRC_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_AKHN_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_BLWF_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_BLWM_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_BLWS_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_C2PC_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_C2SC_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_CALT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_CASE_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_CCMP_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_CJCT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_CLIG_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_CPSP_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_CSWH_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_CURS_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_DIST_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_DLIG_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_DNOM_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_EXPT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_FALT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_FIN2_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_FIN3_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_FINA_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_FRAC_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_FWID_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_HALF_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_HALN_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_HALT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_HIST_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_HKNA_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_HLIG_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_HNGL_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_HWID_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_INIT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_ISOL_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_ITAL_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_JALT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_JP78_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_JP83_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_JP90_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_KERN_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_LFBD_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_LIGA_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_LJMO_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_LNUM_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_LOCL_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_MARK_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_MED2_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_MEDI_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_MGRK_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_MKMK_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_MSET_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_NALT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_NLCK_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_NUKT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_NUMR_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_ONUM_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_OPBD_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_ORDN_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_ORNM_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_PALT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_PCAP_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_PNUM_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_PREF_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_PRES_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_PSTF_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_PSTS_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_PWID_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_QWID_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_RAND_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_RKRF_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_RLIG_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_RPHF_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_RTBD_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_RTLA_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_RUBY_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SALT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SINF_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SIZE_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SMCP_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SMPL_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS01_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS02_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS03_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS04_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS05_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS06_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS07_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS08_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS09_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS10_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS11_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS12_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS13_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS14_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS15_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS16_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS17_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS18_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS19_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SS20_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SUBS_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SUPS_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_SWSH_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_TITL_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_TJMO_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_TNAM_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_TNUM_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_TRAD_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_TWID_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_UNIC_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_VALT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_VATU_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_VERT_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_VHAL_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_VJMO_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_VKNA_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_VKRN_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_VPAL_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_VRT2_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LEFeatureTags::LE_ZERO_FEATURE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_ACNT_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_AVAR_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_BASE_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_BDAT_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_BHED_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_BLOC_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_BSLN_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_CFF__TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_CMAP_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_CVAR_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_CVT__TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_DSIG_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_EBDT_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_EBLC_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_EBSC_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_FDSC_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_FEAT_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_FMTX_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_FPGM_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_FVAR_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_GASP_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_GDEF_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_GLYF_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_GPOS_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_GSUB_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_GVAR_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_HDMX_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_HEAD_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_HHEA_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_HMTX_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_HSTY_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_JSTF_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_JUST_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_KERN_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_LCAR_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_LOCA_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_LTSH_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_MAXP_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_MORT_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_MORX_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_NAME_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_OPBD_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_OS_2_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_PCLT_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_POST_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_PREP_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_PROP_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_TRAK_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_VDMX_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_VHEA_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_VMTX_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_VORG_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">LETypes.h</td><td class="proto"><tt>enum</tt> LETableTags::LE_ZAPF_TABLE_TAG</td><td class="">Deprecated<br>ICU 54</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">numfmt.h</td><td class="proto">UnicodeString& icu::NumberFormat::format(const StringPiece&, UnicodeString&, FieldPositionIterator*, UErrorCode&)</td><td class="stabchange">Stable</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">unistr.h</td><td class="proto"><tt>static</tt> UnicodeString icu::UnicodeString::fromUTF8(const StringPiece&)</td><td class="stabchange">Stable<br>ICU 4.2</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">utypes.h</td><td class="proto"><tt>#define</tt> NULL</td><td class="stabchange">Stable<br>ICU 2.0</td><td>(missing)<br>
-<span class=""><span></span></span></td>
-</tr>
</table>
<P></P>
<a href="#_top">(jump back to top)</a>
<hr>
-<a name="deprecated"></a>
-<h2>Deprecated or Obsoleted in ICU 58</h2>
+<a name="promoted"></a>
+<h2>Promoted to stable in ICU 60</h2>
<table BORDER="1" class="genTable">
<THEAD>
<tr>
-<th>File</th><th>API</th><th>ICU 57</th><th>ICU 58</th>
+<th>File</th><th>API</th><th>ICU 59</th><th>ICU 60</th>
</tr>
</THEAD>
<tr class="row1">
-<td class="file">dtfmtsym.h</td><td class="proto"><tt>enum</tt>
- icu::DateFormatSymbols::DtContextType::DT_CONTEXT_COUNT</td><td class="stabchange">Stable<br>ICU 3.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">measfmt.h</td><td class="proto">UnicodeString icu::MeasureFormat::getUnitDisplayName(const MeasureUnit&, UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row0">
-<td class="file">dtfmtsym.h</td><td class="proto"><tt>enum</tt>
- icu::DateFormatSymbols::DtWidthType::DT_WIDTH_COUNT</td><td class="stabchange">Stable<br>ICU 3.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::NumberFormat::ERoundingMode {}</td><td class="">(moved from decimfmt.h)</td><td>Stable<br>
+<span class=""><span>ICU 2.4</span></span></td>
</tr>
<tr class="row1">
-<td class="file">measfmt.h</td><td class="proto"><tt>enum</tt> UMeasureFormatWidth::UMEASFMT_WIDTH_COUNT</td><td class="stabchange">Stable<br>ICU 53</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::NumberFormat::ERoundingMode::kRoundCeiling</td><td class="">(moved from decimfmt.h)</td><td>Stable<br>
+<span class=""><span>ICU 2.4</span></span></td>
</tr>
<tr class="row0">
-<td class="file">reldatefmt.h</td><td class="proto"><tt>enum</tt> UDateAbsoluteUnit::UDAT_ABSOLUTE_UNIT_COUNT</td><td class="stabchange">Stable<br>ICU 53</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::NumberFormat::ERoundingMode::kRoundDown</td><td class="">(moved from decimfmt.h)</td><td>Stable<br>
+<span class=""><span>ICU 2.4</span></span></td>
</tr>
<tr class="row1">
-<td class="file">reldatefmt.h</td><td class="proto"><tt>enum</tt> UDateDirection::UDAT_DIRECTION_COUNT</td><td class="stabchange">Stable<br>ICU 53</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::NumberFormat::ERoundingMode::kRoundFloor</td><td class="">(moved from decimfmt.h)</td><td>Stable<br>
+<span class=""><span>ICU 2.4</span></span></td>
</tr>
<tr class="row0">
-<td class="file">reldatefmt.h</td><td class="proto"><tt>enum</tt> UDateRelativeUnit::UDAT_RELATIVE_UNIT_COUNT</td><td class="stabchange">Stable<br>ICU 53</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::NumberFormat::ERoundingMode::kRoundHalfDown</td><td class="">(moved from decimfmt.h)</td><td>Stable<br>
+<span class=""><span>ICU 2.4</span></span></td>
</tr>
<tr class="row1">
-<td class="file">tmunit.h</td><td class="proto"><tt>enum</tt>
- icu::TimeUnit::UTimeUnitFields::UTIMEUNIT_FIELD_COUNT</td><td class="stabchange">Stable<br>ICU 4.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::NumberFormat::ERoundingMode::kRoundHalfEven</td><td class="">(moved from decimfmt.h)</td><td>Stable<br>
+<span class=""><span>ICU 2.4</span></span></td>
</tr>
<tr class="row0">
-<td class="file">ubidi.h</td><td class="proto"><tt>#define</tt> U_BIDI_CLASS_DEFAULT</td><td class="stabchange">Stable<br>ICU 3.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::NumberFormat::ERoundingMode::kRoundHalfUp</td><td class="">(moved from decimfmt.h)</td><td>Stable<br>
+<span class=""><span>ICU 2.4</span></span></td>
</tr>
<tr class="row1">
-<td class="file">ubidi.h</td><td class="proto"><tt>enum</tt> UBiDiReorderingMode::UBIDI_REORDER_COUNT</td><td class="stabchange">Stable<br>ICU 3.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::NumberFormat::ERoundingMode::kRoundUnnecessary</td><td class="">(moved from decimfmt.h)</td><td>Stable<br>
+<span class=""><span>ICU 4.8</span></span></td>
</tr>
<tr class="row0">
-<td class="file">ubrk.h</td><td class="proto"><tt>enum</tt> UBreakIteratorType::UBRK_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::NumberFormat::ERoundingMode::kRoundUp</td><td class="">(moved from decimfmt.h)</td><td>Stable<br>
+<span class=""><span>ICU 2.4</span></span></td>
</tr>
<tr class="row1">
-<td class="file">ucal.h</td><td class="proto"><tt>enum</tt> UCalendarDateFields::UCAL_FIELD_COUNT</td><td class="stabchange">Stable<br>ICU 2.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">ubiditransform.h</td><td class="proto">UBiDiTransform* ubiditransform_open(UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBidiPairedBracketType::U_BPT_COUNT</td><td class="stabchange">Stable<br>ICU 52</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">ubiditransform.h</td><td class="proto"><tt>enum</tt> UBiDiMirroring::UBIDI_MIRRORING_OFF</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">ubiditransform.h</td><td class="proto"><tt>enum</tt> UBiDiMirroring::UBIDI_MIRRORING_ON</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UCharDirection::U_CHAR_DIRECTION_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">ubiditransform.h</td><td class="proto"><tt>enum</tt> UBiDiOrder::UBIDI_LOGICAL</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UCharNameChoice::U_CHAR_NAME_CHOICE_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">ubiditransform.h</td><td class="proto"><tt>enum</tt> UBiDiOrder::UBIDI_VISUAL</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UDecompositionType::U_DT_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">ubiditransform.h</td><td class="proto">uint32_t ubiditransform_transform(UBiDiTransform*, const UChar*, int32_t, UChar*, int32_t, UBiDiLevel, UBiDiOrder, UBiDiLevel, UBiDiOrder, UBiDiMirroring, uint32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UEastAsianWidth::U_EA_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">ubiditransform.h</td><td class="proto">void ubiditransform_close(UBiDiTransform*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UHangulSyllableType::U_HST_COUNT</td><td class="stabchange">Stable<br>ICU 2.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_KANA_EXTENDED_A</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MASARAM_GONDI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningType::U_JT_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_NUSHU</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_SOYOMBO</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UNumericType::U_NT_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_SYRIAC_SUPPLEMENT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_BINARY_LIMIT</td><td class="stabchange">Stable<br>ICU 2.1</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_ZANABAZAR_SQUARE</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_DOUBLE_LIMIT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_MALAYALAM_BHA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_INT_LIMIT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_MALAYALAM_JA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_MASK_LIMIT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_MALAYALAM_LLA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_OTHER_PROPERTY_LIMIT</td><td class="stabchange">Stable<br>ICU 4.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_MALAYALAM_LLLA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_STRING_LIMIT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_MALAYALAM_NGA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UPropertyNameChoice::U_PROPERTY_NAME_CHOICE_COUNT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_MALAYALAM_NNA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> USentenceBreak::U_SB_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_MALAYALAM_NNNA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_MALAYALAM_NYA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">ucnv.h</td><td class="proto"><tt>enum</tt> UConverterUnicodeSet::UCNV_SET_COUNT</td><td class="stabchange">Stable<br>ICU 2.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_MALAYALAM_RA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">ucol.h</td><td class="proto"><tt>enum</tt> UColAttribute::UCOL_ATTRIBUTE_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_MALAYALAM_SSA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">ucol.h</td><td class="proto"><tt>enum</tt> UColAttributeValue::UCOL_ATTRIBUTE_VALUE_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_MALAYALAM_TTA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">ucol.h</td><td class="proto"><tt>enum</tt> UColBoundMode::UCOL_BOUND_VALUE_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EMOJI_COMPONENT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">ucol.h</td><td class="proto"><tt>enum</tt> UColReorderCode::UCOL_REORDER_CODE_LIMIT</td><td class="stabchange">Stable<br>ICU 4.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_PREPENDED_CONCATENATION_MARK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">ucurr.h</td><td class="proto"><tt>enum</tt> UCurrencyUsage::UCURR_USAGE_COUNT</td><td class="stabchange">Stable<br>ICU 54</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_REGIONAL_INDICATOR</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatBooleanAttribute::UDAT_BOOLEAN_ATTRIBUTE_COUNT</td><td class="stabchange">Stable<br>ICU 53</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">udisplaycontext.h</td><td class="proto"><tt>enum</tt> UDisplayContext::UDISPCTX_NO_SUBSTITUTE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row0">
-<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatField::UDAT_FIELD_COUNT</td><td class="stabchange">Stable<br>ICU 3.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">udisplaycontext.h</td><td class="proto"><tt>enum</tt> UDisplayContext::UDISPCTX_SUBSTITUTE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row1">
-<td class="file">udata.h</td><td class="proto"><tt>enum</tt> UDataFileAccess::UDATA_FILE_ACCESS_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">udisplaycontext.h</td><td class="proto"><tt>enum</tt> UDisplayContextType::UDISPCTX_TYPE_SUBSTITUTE_HANDLING</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row0">
-<td class="file">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePatternConflict::UDATPG_CONFLICT_COUNT</td><td class="stabchange">Stable<br>ICU 3.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_MASARAM_GONDI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePatternField::UDATPG_FIELD_COUNT</td><td class="stabchange">Stable<br>ICU 3.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_SOYOMBO</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">uformattable.h</td><td class="proto"><tt>enum</tt> UFormattableType::UFMT_COUNT</td><td class="stabchange">Stable<br>ICU 52</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_ZANABAZAR_SQUARE</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">uloc.h</td><td class="proto"><tt>enum</tt> ULocDataLocaleType::ULOC_DATA_LOCALE_TYPE_LIMIT</td><td class="stabchange">Stable<br>ICU 2.1</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uspoof.h</td><td class="proto">URestrictionLevel uspoof_getCheckResultRestrictionLevel(const USpoofCheckResult*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row0">
-<td class="file">ulocdata.h</td><td class="proto"><tt>enum</tt> ULocaleDataDelimiterType::ULOCDATA_DELIMITER_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uspoof.h</td><td class="proto">USpoofCheckResult* uspoof_openCheckResult(UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row1">
-<td class="file">ulocdata.h</td><td class="proto"><tt>enum</tt> ULocaleDataExemplarSetType::ULOCDATA_ES_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uspoof.h</td><td class="proto">U_NAMESPACE_END int32_t uspoof_getCheckResultChecks(const USpoofCheckResult*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row0">
-<td class="file">ulocdata.h</td><td class="proto"><tt>enum</tt> UMeasurementSystem::UMS_LIMIT</td><td class="stabchange">Stable<br>ICU 2.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uspoof.h</td><td class="proto">const USet* uspoof_getCheckResultNumerics(const USpoofCheckResult*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row1">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UCurrencySpacing::UNUM_CURRENCY_SPACING_COUNT</td><td class="stabchange">Stable<br>ICU 4.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uspoof.h</td><td class="proto"><tt>enum</tt> USpoofChecks::USPOOF_CONFUSABLE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row0">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatFields::UNUM_FIELD_COUNT</td><td class="stabchange">Stable<br>ICU 49</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_check2(const USpoofChecker*, const UChar*, int32_t, USpoofCheckResult*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row1">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatStyle::UNUM_FORMAT_STYLE_COUNT</td><td class="stabchange">Stable<br>ICU 4.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_check2UTF8(const USpoofChecker*, const char*, int32_t, USpoofCheckResult*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row0">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatSymbol::UNUM_FORMAT_SYMBOL_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_check2UnicodeString(const USpoofChecker*, const icu::UnicodeString&, USpoofCheckResult*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
<tr class="row1">
-<td class="file">upluralrules.h</td><td class="proto"><tt>enum</tt> UPluralType::UPLURAL_TYPE_COUNT</td><td class="stabchange">Stable<br>ICU 50</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">uspoof.h</td><td class="proto">void uspoof_closeCheckResult(USpoofCheckResult*)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 58</td>
</tr>
-<tr class="row0">
-<td class="file">uregion.h</td><td class="proto"><tt>enum</tt> URegionType::URGN_LIMIT</td><td class="stabchange">Stable<br>ICU 51</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> UDateRelativeDateTimeFormatterStyle::UDAT_STYLE_COUNT</td><td class="stabchange">Stable<br>ICU 54</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_COUNT</td><td class="">Draft<br>ICU 57</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">ures.h</td><td class="proto"><tt>enum</tt> UResType::URES_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_CODE_LIMIT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">usearch.h</td><td class="proto"><tt>enum</tt> USearchAttribute::USEARCH_ATTRIBUTE_COUNT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">usearch.h</td><td class="proto"><tt>enum</tt> USearchAttributeValue::USEARCH_ATTRIBUTE_VALUE_COUNT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uset.h</td><td class="proto"><tt>enum</tt> USetSpanCondition::USET_SPAN_CONDITION_COUNT</td><td class="stabchange">Stable<br>ICU 3.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uspoof.h</td><td class="proto"><tt>enum</tt> USpoofChecks::USPOOF_ANY_CASE</td><td class="stabchange">Stable<br>ICU 4.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">utrace.h</td><td class="proto"><tt>enum</tt> UTraceFunctionNumber::UTRACE_COLLATION_LIMIT</td><td class="stabchange">Stable<br>ICU 2.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">utrace.h</td><td class="proto"><tt>enum</tt> UTraceFunctionNumber::UTRACE_CONVERSION_LIMIT</td><td class="stabchange">Stable<br>ICU 2.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">utrace.h</td><td class="proto"><tt>enum</tt> UTraceFunctionNumber::UTRACE_FUNCTION_LIMIT</td><td class="stabchange">Stable<br>ICU 2.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_BRK_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_ERROR_WARNING_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_FMT_PARSE_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_IDNA_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_PARSE_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_PLUGIN_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_REGEX_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_STANDARD_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
</table>
<P></P>
<a href="#_top">(jump back to top)</a>
<hr>
-<a name="changed"></a>
-<h2>Changed in ICU 58 (old, new)</h2>
+<a name="added"></a>
+<h2>Added in ICU 60</h2>
<table BORDER="1" class="genTable">
<THEAD>
<tr>
-<th>File</th><th>API</th><th>ICU 57</th><th>ICU 58</th>
+<th>File</th><th>API</th><th>ICU 59</th><th>ICU 60</th>
</tr>
</THEAD>
<tr class="row1">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString& icu::CompactDecimalFormat::format(int32_t, UnicodeString&, FieldPosition&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">bytestream.h</td><td class="proto">icu::StringByteSink< StringClass >::StringByteSink(StringClass*, int32_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString& icu::DecimalFormat::format(double, UnicodeString&, FieldPositionIterator*, UErrorCode&)</td><td class="stabchange">Stable</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8Fold(uint32_t, StringPiece, ByteSink&, Edits*, UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString& icu::DecimalFormat::format(int32_t, UnicodeString&, FieldPositionIterator*, UErrorCode&)</td><td class="stabchange">Stable</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToLower(const char*, uint32_t, StringPiece, ByteSink&, Edits*, UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString& icu::DecimalFormat::format(int64_t, UnicodeString&, FieldPositionIterator*, UErrorCode&)</td><td class="stabchange">Stable</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToTitle(const char*, uint32_t, BreakIterator*, StringPiece, ByteSink&, Edits*, UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">dtfmtsym.h</td><td class="proto"><tt>enum</tt>
- icu::DateFormatSymbols::DtContextType::DT_CONTEXT_COUNT</td><td class="stabchange">Stable<br>ICU 3.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> void icu::CaseMap::utf8ToUpper(const char*, uint32_t, StringPiece, ByteSink&, Edits*, UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">dtfmtsym.h</td><td class="proto"><tt>enum</tt>
- icu::DateFormatSymbols::DtWidthType::DT_WIDTH_COUNT</td><td class="stabchange">Stable<br>ICU 3.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">currunit.h</td><td class="proto">icu::CurrencyUnit::CurrencyUnit()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">dtptngen.h</td><td class="proto"><tt>static</tt> UnicodeString icu::DateTimePatternGenerator::staticGetBaseSkeleton(const UnicodeString&, UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">currunit.h</td><td class="proto">icu::CurrencyUnit::CurrencyUnit(const MeasureUnit&, UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">dtptngen.h</td><td class="proto"><tt>static</tt> UnicodeString icu::DateTimePatternGenerator::staticGetSkeleton(const UnicodeString&, UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">dcfmtsym.h</td><td class="proto">icu::DecimalFormatSymbols::DecimalFormatSymbols(const Locale&, const NumberingSystem&, UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">fieldpos.h</td><td class="proto"><tt>enum</tt> icu::FieldPosition::(anonymous) {}</td><td class=""><i>(untagged)</i></td><td>Stable<br>
-<span class=""><span>ICU 2.0</span></span></td>
+<td class="file">edits.h</td><td class="proto">Edits& icu::Edits::mergeAndAppend(const Edits&, const Edits&, UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">fieldpos.h</td><td class="proto"><tt>enum</tt> icu::FieldPosition::(anonymous)::DONT_CARE</td><td class=""><i>(untagged)</i></td><td>Stable<br>
-<span class=""><span>ICU 2.0</span></span></td>
+<td class="file">edits.h</td><td class="proto">Edits& icu::Edits::operator=(Edits&&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">filteredbrk.h</td><td class="proto">BreakIterator* icu::FilteredBreakIteratorBuilder::build(BreakIterator*, UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">edits.h</td><td class="proto">Edits& icu::Edits::operator=(const Edits&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">filteredbrk.h</td><td class="proto">UBool icu::FilteredBreakIteratorBuilder::suppressBreakAfter(const UnicodeString&, UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">edits.h</td><td class="proto">icu::Edits::Edits(Edits&&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">filteredbrk.h</td><td class="proto">UBool icu::FilteredBreakIteratorBuilder::unsuppressBreakAfter(const UnicodeString&, UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">edits.h</td><td class="proto">icu::Edits::Edits(const Edits&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">filteredbrk.h</td><td class="proto">icu::FilteredBreakIteratorBuilder::~FilteredBreakIteratorBuilder()</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">edits.h</td><td class="proto">int32_t icu::Edits::numberOfChanges()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">filteredbrk.h</td><td class="proto"><tt>static</tt> FilteredBreakIteratorBuilder* icu::FilteredBreakIteratorBuilder::createInstance(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">filteredbrk.h</td><td class="proto">BreakIterator* icu::FilteredBreakIteratorBuilder::wrapIteratorWithFilter(BreakIterator*, UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">filteredbrk.h</td><td class="proto"><tt>static</tt> FilteredBreakIteratorBuilder* icu::FilteredBreakIteratorBuilder::createInstance(const Locale&, UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">filteredbrk.h</td><td class="proto"><tt>static</tt> FilteredBreakIteratorBuilder* icu::FilteredBreakIteratorBuilder::createEmptyInstance(UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">localpointer.h</td><td class="proto">icu::LocalArray< T >::LocalArray(T*, UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">normalizer2.h</td><td class="proto">UBool icu::FilteredNormalizer2::isNormalizedUTF8(StringPiece, UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">localpointer.h</td><td class="proto">void icu::LocalArray< T >::adoptInsteadAndCheckErrorCode(T*, UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">normalizer2.h</td><td class="proto">UBool icu::Normalizer2::isNormalizedUTF8(StringPiece, UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">localpointer.h</td><td class="proto">void icu::LocalArray< T >::swap(LocalArray< T >&) U_NOEXCEPT</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">normalizer2.h</td><td class="proto">void icu::FilteredNormalizer2::normalizeUTF8(uint32_t, StringPiece, ByteSink&, Edits*, UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">localpointer.h</td><td class="proto">void icu::LocalPointer< T >::swap(LocalPointer< T >&) U_NOEXCEPT</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">normalizer2.h</td><td class="proto">void icu::Normalizer2::normalizeUTF8(uint32_t, StringPiece, ByteSink&, Edits*, UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">measfmt.h</td><td class="proto"><tt>enum</tt> UMeasureFormatWidth::UMEASFMT_WIDTH_COUNT</td><td class="stabchange">Stable<br>ICU 53</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">nounit.h</td><td class="proto">UClassID icu::NoUnit::getDynamicClassID()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createCentury(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">nounit.h</td><td class="proto">UObject* icu::NoUnit::clone()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createCupMetric(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">nounit.h</td><td class="proto">icu::NoUnit::NoUnit(const NoUnit&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createGenericTemperature(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">nounit.h</td><td class="proto">icu::NoUnit::~NoUnit()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createKnot(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">nounit.h</td><td class="proto"><tt>static</tt> NoUnit icu::NoUnit::base()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createLiterPer100Kilometers(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">nounit.h</td><td class="proto"><tt>static</tt> NoUnit icu::NoUnit::percent()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createMileScandinavian(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">nounit.h</td><td class="proto"><tt>static</tt> NoUnit icu::NoUnit::permille()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createPintMetric(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">nounit.h</td><td class="proto"><tt>static</tt> UClassID icu::NoUnit::getStaticClassID()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createRevolutionAngle(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">numberformatter.h</td><td class="proto">Appendable& icu::number::FormattedNumber::appendTo(Appendable&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">numfmt.h</td><td class="proto">UnicodeString& icu::NumberFormat::format(const Formattable&, UnicodeString&, FieldPositionIterator*, UErrorCode&)</td><td class="stabchange">Stable</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::adoptSymbols(const NumberingSystem*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">numfmt.h</td><td class="proto">UnicodeString& icu::NumberFormat::format(double, UnicodeString&, FieldPositionIterator*, UErrorCode&)</td><td class="stabchange">Stable</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::adoptUnit(const icu::MeasureUnit*)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">numfmt.h</td><td class="proto">UnicodeString& icu::NumberFormat::format(int32_t, UnicodeString&, FieldPositionIterator*, UErrorCode&)</td><td class="stabchange">Stable</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::decimal(const UNumberDecimalSeparatorDisplay&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">numfmt.h</td><td class="proto">UnicodeString& icu::NumberFormat::format(int64_t, UnicodeString&, FieldPositionIterator*, UErrorCode&)</td><td class="stabchange">Stable</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::grouping(const Grouper&)</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row0">
-<td class="file">reldatefmt.h</td><td class="proto"><tt>enum</tt> UDateAbsoluteUnit::UDAT_ABSOLUTE_UNIT_COUNT</td><td class="stabchange">Stable<br>ICU 53</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::integerWidth(const IntegerWidth&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">reldatefmt.h</td><td class="proto"><tt>enum</tt> UDateDirection::UDAT_DIRECTION_COUNT</td><td class="stabchange">Stable<br>ICU 53</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::notation(const Notation&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">reldatefmt.h</td><td class="proto"><tt>enum</tt> UDateRelativeUnit::UDAT_RELATIVE_UNIT_COUNT</td><td class="stabchange">Stable<br>ICU 53</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::padding(const impl::Padder&)</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">tmunit.h</td><td class="proto"><tt>enum</tt>
- icu::TimeUnit::UTimeUnitFields::UTIMEUNIT_FIELD_COUNT</td><td class="stabchange">Stable<br>ICU 4.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::rounding(const Rounder&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">ubidi.h</td><td class="proto"><tt>#define</tt> U_BIDI_CLASS_DEFAULT</td><td class="stabchange">Stable<br>ICU 3.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::sign(const UNumberSignDisplay&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">ubidi.h</td><td class="proto"><tt>enum</tt> UBiDiReorderingMode::UBIDI_REORDER_COUNT</td><td class="stabchange">Stable<br>ICU 3.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::symbols(const DecimalFormatSymbols&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">ubrk.h</td><td class="proto"><tt>enum</tt> UBreakIteratorType::UBRK_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::threshold(int32_t)</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">ucal.h</td><td class="proto"><tt>enum</tt> UCalendarDateFields::UCAL_FIELD_COUNT</td><td class="stabchange">Stable<br>ICU 2.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::unit(const icu::MeasureUnit&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBidiPairedBracketType::U_BPT_COUNT</td><td class="stabchange">Stable<br>ICU 52</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Derived icu::number::NumberFormatterSettings< Derived >::unitWidth(const UNumberUnitWidth&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatDecimal(StringPiece, UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UCharDirection::U_CHAR_DIRECTION_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatDouble(double, UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UCharNameChoice::U_CHAR_NAME_CHOICE_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">FormattedNumber icu::number::LocalizedNumberFormatter::formatInt(int64_t, UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UDecompositionType::U_DT_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">IntegerWidth icu::number::IntegerWidth::truncateAt(int32_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UEastAsianWidth::U_EA_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">LocalizedNumberFormatter icu::number::UnlocalizedNumberFormatter::locale(const icu::Locale&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Rounder icu::number::CurrencyRounder::withCurrency(const CurrencyUnit&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_PREPEND</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.0</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Rounder icu::number::FractionRounder::withMaxDigits(int32_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_REGIONAL_INDICATOR</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 50</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Rounder icu::number::FractionRounder::withMinDigits(int32_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_SPACING_MARK</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.0</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Rounder icu::number::IncrementRounder::withMinFraction(int32_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UHangulSyllableType::U_HST_COUNT</td><td class="stabchange">Stable<br>ICU 2.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">Rounder icu::number::Rounder::withMode(UNumberFormatRoundingMode)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">ScientificNotation icu::number::ScientificNotation::withExponentSignDisplay(UNumberSignDisplay)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningType::U_JT_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">ScientificNotation icu::number::ScientificNotation::withMinExponentDigits(int32_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_CLOSE_PARENTHESIS</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.4</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numberformatter.h</td><td class="proto">SymbolsWrapper& icu::number::impl::SymbolsWrapper::operator=(const SymbolsWrapper&)</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_CONDITIONAL_JAPANESE_STARTER</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Stable<br>
-<span class="verchange"><span>ICU 49</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numberformatter.h</td><td class="proto">UBool icu::number::NumberFormatterSettings< Derived >::copyErrorTo(UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">UBool icu::number::impl::SymbolsWrapper::copyErrorTo(UErrorCode&)</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_H2</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Stable<br>
-<span class="verchange"><span>ICU 3.4</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numberformatter.h</td><td class="proto">UnicodeString icu::number::FormattedNumber::toString()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_H3</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Stable<br>
-<span class="verchange"><span>ICU 3.4</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numberformatter.h</td><td class="proto">bool icu::number::impl::SymbolsWrapper::isDecimalFormatSymbols()</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_HEBREW_LETTER</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Stable<br>
-<span class="verchange"><span>ICU 49</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numberformatter.h</td><td class="proto">bool icu::number::impl::SymbolsWrapper::isNumberingSystem()</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_JL</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Stable<br>
-<span class="verchange"><span>ICU 3.4</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numberformatter.h</td><td class="proto">const DecimalFormatSymbols* icu::number::impl::SymbolsWrapper::getDecimalFormatSymbols()</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_JT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Stable<br>
-<span class="verchange"><span>ICU 3.4</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numberformatter.h</td><td class="proto">const NumberingSystem* icu::number::impl::SymbolsWrapper::getNumberingSystem()</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_JV</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Stable<br>
-<span class="verchange"><span>ICU 3.4</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberDecimalSeparatorDisplay::UNUM_DECIMAL_SEPARATOR_ALWAYS</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_NEXT_LINE</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Stable<br>
-<span class="verchange"><span>ICU 2.6</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberDecimalSeparatorDisplay::UNUM_DECIMAL_SEPARATOR_AUTO</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_REGIONAL_INDICATOR</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Stable<br>
-<span class="verchange"><span>ICU 50</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberDecimalSeparatorDisplay::UNUM_DECIMAL_SEPARATOR_COUNT</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_WORD_JOINER</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Stable<br>
-<span class="verchange"><span>ICU 2.6</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING_ALWAYS</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UNumericType::U_NT_COUNT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ACCOUNTING</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_BINARY_LIMIT</td><td class="stabchange">Stable<br>ICU 2.1</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_ALWAYS</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_DOUBLE_LIMIT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_AUTO</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_INT_LIMIT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_COUNT</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_MASK_LIMIT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberSignDisplay::UNUM_SIGN_NEVER</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_OTHER_PROPERTY_LIMIT</td><td class="stabchange">Stable<br>ICU 4.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_COUNT</td><td class="">(missing)</td><td>Internal<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_STRING_LIMIT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_FULL_NAME</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UPropertyNameChoice::U_PROPERTY_NAME_CHOICE_COUNT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_HIDDEN</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> USentenceBreak::U_SB_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_ISO_CODE</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_NARROW</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_CR</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.0</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>enum</tt> UNumberUnitWidth::UNUM_UNIT_WIDTH_SHORT</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_DOUBLE_QUOTE</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 52</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numberformatter.h</td><td class="proto">icu::number::FormattedNumber::~FormattedNumber()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_EXTEND</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.0</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numberformatter.h</td><td class="proto">icu::number::LocalizedNumberFormatter::LocalizedNumberFormatter(const LocalizedNumberFormatter&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_HEBREW_LETTER</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 52</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numberformatter.h</td><td class="proto">icu::number::LocalizedNumberFormatter::~LocalizedNumberFormatter()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_LF</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.0</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numberformatter.h</td><td class="proto">icu::number::NumberFormatter::NumberFormatter()=delete</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_MIDNUMLET</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.0</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numberformatter.h</td><td class="proto">icu::number::UnlocalizedNumberFormatter::UnlocalizedNumberFormatter(const UnlocalizedNumberFormatter&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_NEWLINE</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.0</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numberformatter.h</td><td class="proto">icu::number::impl::SymbolsWrapper::SymbolsWrapper()</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_REGIONAL_INDICATOR</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 50</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numberformatter.h</td><td class="proto">icu::number::impl::SymbolsWrapper::SymbolsWrapper(const SymbolsWrapper&)</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_SINGLE_QUOTE</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Stable<br>
-<span class="verchange"><span>ICU 52</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numberformatter.h</td><td class="proto">icu::number::impl::SymbolsWrapper::~SymbolsWrapper()</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row0">
-<td class="file">ucnv.h</td><td class="proto"><tt>enum</tt> UConverterUnicodeSet::UCNV_SET_COUNT</td><td class="stabchange">Stable<br>ICU 2.6</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> CompactNotation icu::number::Notation::compactLong()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">ucol.h</td><td class="proto"><tt>enum</tt> UColAttribute::UCOL_ATTRIBUTE_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> CompactNotation icu::number::Notation::compactShort()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">ucol.h</td><td class="proto"><tt>enum</tt> UColAttributeValue::UCOL_ATTRIBUTE_VALUE_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> CurrencyRounder icu::number::Rounder::currency(UCurrencyUsage)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">ucol.h</td><td class="proto"><tt>enum</tt> UColBoundMode::UCOL_BOUND_VALUE_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> DigitRounder icu::number::Rounder::fixedDigits(int32_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">ucol.h</td><td class="proto"><tt>enum</tt> UColReorderCode::UCOL_REORDER_CODE_LIMIT</td><td class="stabchange">Stable<br>ICU 4.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> DigitRounder icu::number::Rounder::maxDigits(int32_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">ucurr.h</td><td class="proto"><tt>enum</tt> UCurrencyUsage::UCURR_USAGE_COUNT</td><td class="stabchange">Stable<br>ICU 54</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> DigitRounder icu::number::Rounder::minDigits(int32_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatBooleanAttribute::UDAT_BOOLEAN_ATTRIBUTE_COUNT</td><td class="stabchange">Stable<br>ICU 53</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> DigitRounder icu::number::Rounder::minMaxDigits(int32_t, int32_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatBooleanAttribute::UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionRounder icu::number::Rounder::fixedFraction(int32_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatBooleanAttribute::UDAT_PARSE_PARTIAL_LITERAL_MATCH</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionRounder icu::number::Rounder::integer()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatField::UDAT_FIELD_COUNT</td><td class="stabchange">Stable<br>ICU 3.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionRounder icu::number::Rounder::maxFraction(int32_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">udata.h</td><td class="proto"><tt>enum</tt> UDataFileAccess::UDATA_FILE_ACCESS_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionRounder icu::number::Rounder::minFraction(int32_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePatternConflict::UDATPG_CONFLICT_COUNT</td><td class="stabchange">Stable<br>ICU 3.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> FractionRounder icu::number::Rounder::minMaxFraction(int32_t, int32_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">udatpg.h</td><td class="proto"><tt>enum</tt> UDateTimePatternField::UDATPG_FIELD_COUNT</td><td class="stabchange">Stable<br>ICU 3.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Grouper icu::number::Grouper::defaults()</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row1">
-<td class="file">uformattable.h</td><td class="proto"><tt>enum</tt> UFormattableType::UFMT_COUNT</td><td class="stabchange">Stable<br>ICU 52</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Grouper icu::number::Grouper::minTwoDigits()</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row0">
-<td class="file">uloc.h</td><td class="proto"><tt>enum</tt> ULocDataLocaleType::ULOC_DATA_LOCALE_TYPE_LIMIT</td><td class="stabchange">Stable<br>ICU 2.1</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Grouper icu::number::Grouper::none()</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row1">
-<td class="file">ulocdata.h</td><td class="proto"><tt>enum</tt> ULocaleDataDelimiterType::ULOCDATA_DELIMITER_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> IncrementRounder icu::number::Rounder::increment(double)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">ulocdata.h</td><td class="proto"><tt>enum</tt> ULocaleDataExemplarSetType::ULOCDATA_ES_COUNT</td><td class="stabchange">Stable<br>ICU 3.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> IntegerWidth icu::number::IntegerWidth::zeroFillTo(int32_t)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">ulocdata.h</td><td class="proto"><tt>enum</tt> UMeasurementSystem::UMS_LIMIT</td><td class="stabchange">Stable<br>ICU 2.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> LocalizedNumberFormatter icu::number::NumberFormatter::withLocale(const Locale&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">unistr.h</td><td class="proto"><tt>#define</tt> UNISTR_OBJECT_SIZE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Padder icu::number::impl::Padder::codePoints(UChar32, int32_t, UNumberFormatPadPosition)</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row1">
-<td class="file">unistr.h</td><td class="proto">void icu::UnicodeString::swap(UnicodeString&) U_NOEXCEPT</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Padder icu::number::impl::Padder::none()</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row0">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UCurrencySpacing::UNUM_CURRENCY_SPACING_COUNT</td><td class="stabchange">Stable<br>ICU 4.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> Rounder icu::number::Rounder::unlimited()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatFields::UNUM_FIELD_COUNT</td><td class="stabchange">Stable<br>ICU 49</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> ScientificNotation icu::number::Notation::engineering()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatStyle::UNUM_CURRENCY_STANDARD</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> ScientificNotation icu::number::Notation::scientific()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatStyle::UNUM_DECIMAL_COMPACT_LONG</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> SimpleNotation icu::number::Notation::simple()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatStyle::UNUM_DECIMAL_COMPACT_SHORT</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">numberformatter.h</td><td class="proto"><tt>static</tt> UnlocalizedNumberFormatter icu::number::NumberFormatter::with()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatStyle::UNUM_FORMAT_STYLE_COUNT</td><td class="stabchange">Stable<br>ICU 4.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">void icu::number::FormattedNumber::populateFieldPosition(FieldPosition&, UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatSymbol::UNUM_FORMAT_SYMBOL_COUNT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">void icu::number::FormattedNumber::populateFieldPositionIterator(FieldPositionIterator&, UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">upluralrules.h</td><td class="proto"><tt>enum</tt> UPluralType::UPLURAL_TYPE_COUNT</td><td class="stabchange">Stable<br>ICU 50</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">void icu::number::impl::SymbolsWrapper::setTo(const DecimalFormatSymbols&)</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row0">
-<td class="file">uregion.h</td><td class="proto"><tt>enum</tt> URegionType::URGN_LIMIT</td><td class="stabchange">Stable<br>ICU 51</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numberformatter.h</td><td class="proto">void icu::number::impl::SymbolsWrapper::setTo(const NumberingSystem*)</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> UDateRelativeDateTimeFormatterStyle::UDAT_STYLE_COUNT</td><td class="stabchange">Stable<br>ICU 54</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numfmt.h</td><td class="proto">ERoundingMode icu::NumberFormat::getRoundingMode()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_COUNT</td><td class="">Draft<br>ICU 57</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::NumberFormat::ERoundingMode {}</td><td class="">(moved from decimfmt.h)</td><td>Stable<br>
+<span class=""><span>ICU 2.4</span></span></td>
</tr>
<tr class="row1">
-<td class="file">ures.h</td><td class="proto"><tt>enum</tt> UResType::URES_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::NumberFormat::ERoundingMode::kRoundCeiling</td><td class="">(moved from decimfmt.h)</td><td>Stable<br>
+<span class=""><span>ICU 2.4</span></span></td>
</tr>
<tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_CODE_LIMIT</td><td class="stabchange">Stable<br>ICU 2.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::NumberFormat::ERoundingMode::kRoundDown</td><td class="">(moved from decimfmt.h)</td><td>Stable<br>
+<span class=""><span>ICU 2.4</span></span></td>
</tr>
<tr class="row1">
-<td class="file">usearch.h</td><td class="proto"><tt>enum</tt> USearchAttribute::USEARCH_ATTRIBUTE_COUNT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::NumberFormat::ERoundingMode::kRoundFloor</td><td class="">(moved from decimfmt.h)</td><td>Stable<br>
+<span class=""><span>ICU 2.4</span></span></td>
</tr>
<tr class="row0">
-<td class="file">usearch.h</td><td class="proto"><tt>enum</tt> USearchAttributeValue::USEARCH_ATTRIBUTE_VALUE_COUNT</td><td class="stabchange">Stable<br>ICU 2.4</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::NumberFormat::ERoundingMode::kRoundHalfDown</td><td class="">(moved from decimfmt.h)</td><td>Stable<br>
+<span class=""><span>ICU 2.4</span></span></td>
</tr>
<tr class="row1">
-<td class="file">uset.h</td><td class="proto"><tt>enum</tt> USetSpanCondition::USET_SPAN_CONDITION_COUNT</td><td class="stabchange">Stable<br>ICU 3.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::NumberFormat::ERoundingMode::kRoundHalfEven</td><td class="">(moved from decimfmt.h)</td><td>Stable<br>
+<span class=""><span>ICU 2.4</span></span></td>
</tr>
<tr class="row0">
-<td class="file">uspoof.h</td><td class="proto"><tt>enum</tt> USpoofChecks::USPOOF_ANY_CASE</td><td class="stabchange">Stable<br>ICU 4.2</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::NumberFormat::ERoundingMode::kRoundHalfUp</td><td class="">(moved from decimfmt.h)</td><td>Stable<br>
+<span class=""><span>ICU 2.4</span></span></td>
</tr>
<tr class="row1">
-<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_checkUTF8(const USpoofChecker*, const char*, int32_t, int32_t*, UErrorCode*)</td><td class="">Deprecated<br>ICU 51</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.2</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::NumberFormat::ERoundingMode::kRoundUnnecessary</td><td class="">(moved from decimfmt.h)</td><td>Stable<br>
+<span class=""><span>ICU 4.8</span></span></td>
</tr>
<tr class="row0">
-<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_checkUnicodeString(const USpoofChecker*, const icu::UnicodeString&, int32_t*, UErrorCode*)</td><td class="">Deprecated<br>ICU 51</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.2</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">numfmt.h</td><td class="proto"><tt>enum</tt>
+ icu::NumberFormat::ERoundingMode::kRoundUp</td><td class="">(moved from decimfmt.h)</td><td>Stable<br>
+<span class=""><span>ICU 2.4</span></span></td>
</tr>
<tr class="row1">
-<td class="file">utrace.h</td><td class="proto"><tt>enum</tt> UTraceFunctionNumber::UTRACE_COLLATION_LIMIT</td><td class="stabchange">Stable<br>ICU 2.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">numfmt.h</td><td class="proto">void icu::NumberFormat::setRoundingMode(ERoundingMode)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">utrace.h</td><td class="proto"><tt>enum</tt> UTraceFunctionNumber::UTRACE_CONVERSION_LIMIT</td><td class="stabchange">Stable<br>ICU 2.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">platform.h</td><td class="proto"><tt>#define</tt> U_CALLCONV_FPTR</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row1">
-<td class="file">utrace.h</td><td class="proto"><tt>enum</tt> UTraceFunctionNumber::UTRACE_FUNCTION_LIMIT</td><td class="stabchange">Stable<br>ICU 2.8</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">platform.h</td><td class="proto"><tt>#define</tt> U_PF_FUCHSIA</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row0">
-<td class="file">utypes.h</td><td class="proto"><tt>#define</tt> NULL</td><td class="">Deprecated<br>ICU 54</td><td>Stable<br>
-<span class="verchange"><span>ICU 2.0</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
+<td class="file">plurrule.h</td><td class="proto">UnicodeString icu::PluralRules::select(const IFixedDecimal&)</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row1">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_BRK_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">rbbi.h</td><td class="proto">void icu::RuleBasedBreakIterator::dumpCache()</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row0">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">rbnf.h</td><td class="proto">ERoundingMode icu::RuleBasedNumberFormat::getRoundingMode()</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_ERROR_WARNING_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">rbnf.h</td><td class="proto">void icu::RuleBasedNumberFormat::setRoundingMode(ERoundingMode)</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_FMT_PARSE_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_COMPARE_CODE_POINT_ORDER</td><td class="">(moved from unorm2.h, ustring.h)</td><td>Stable<br>
+<span class=""><span>ICU 2.2</span></span></td>
</tr>
<tr class="row1">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_IDNA_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_COMPARE_IGNORE_CASE</td><td class="">(moved from unorm2.h)</td><td>Stable<br>
+<span class=""><span>ICU 2.2</span></span></td>
</tr>
<tr class="row0">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_PARSE_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_EDITS_NO_RESET</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_PLUGIN_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_REGEX_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">utypes.h</td><td class="proto"><tt>enum</tt> UErrorCode::U_STANDARD_ERROR_LIMIT</td><td class="stabchange">Stable<br>ICU 2.0</td><td>Deprecated<br>
-<span class="verchange"><span>ICU 58</span></span></td>
-</tr>
-</table>
-<P></P>
-<a href="#_top">(jump back to top)</a>
-<hr>
-<a name="promoted"></a>
-<h2>Promoted to stable in ICU 58</h2>
-<table BORDER="1" class="genTable">
-<THEAD>
-<tr>
-<th>File</th><th>API</th><th>ICU 57</th><th>ICU 58</th>
-</tr>
-</THEAD>
-<tr class="row1">
-<td class="file">bytestrie.h</td><td class="proto">StringPiece icu::BytesTrie::Iterator::getString()</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.8</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">bytestriebuilder.h</td><td class="proto">BytesTrieBuilder& icu::BytesTrieBuilder::add(StringPiece, int32_t, UErrorCode&)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.8</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString& icu::CompactDecimalFormat::format(int32_t, UnicodeString&, FieldPosition&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
-</tr>
-<tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString& icu::DecimalFormat::format(StringPiece, UnicodeString&, FieldPositionIterator*, UErrorCode&)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">dtptngen.h</td><td class="proto"><tt>static</tt> UnicodeString icu::DateTimePatternGenerator::staticGetBaseSkeleton(const UnicodeString&, UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
-</tr>
-<tr class="row0">
-<td class="file">dtptngen.h</td><td class="proto"><tt>static</tt> UnicodeString icu::DateTimePatternGenerator::staticGetSkeleton(const UnicodeString&, UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
-</tr>
-<tr class="row1">
-<td class="file">fieldpos.h</td><td class="proto"><tt>enum</tt> icu::FieldPosition::(anonymous) {}</td><td class=""><i>(untagged)</i></td><td>Stable<br>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_FOLD_CASE_DEFAULT</td><td class="">(moved from uchar.h)</td><td>Stable<br>
<span class=""><span>ICU 2.0</span></span></td>
</tr>
<tr class="row0">
-<td class="file">fieldpos.h</td><td class="proto"><tt>enum</tt> icu::FieldPosition::(anonymous)::DONT_CARE</td><td class=""><i>(untagged)</i></td><td>Stable<br>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_FOLD_CASE_EXCLUDE_SPECIAL_I</td><td class="">(moved from moved from uchar.h)</td><td>Stable<br>
<span class=""><span>ICU 2.0</span></span></td>
</tr>
<tr class="row1">
-<td class="file">filteredbrk.h</td><td class="proto">BreakIterator* icu::FilteredBreakIteratorBuilder::build(BreakIterator*, UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_OMIT_UNCHANGED_TEXT</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">filteredbrk.h</td><td class="proto">UBool icu::FilteredBreakIteratorBuilder::suppressBreakAfter(const UnicodeString&, UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_ADJUST_TO_CASED</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">filteredbrk.h</td><td class="proto">UBool icu::FilteredBreakIteratorBuilder::unsuppressBreakAfter(const UnicodeString&, UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_NO_BREAK_ADJUSTMENT</td><td class="">(moved from ucasemap.h)</td><td>Stable<br>
+<span class=""><span>ICU 3.8</span></span></td>
</tr>
<tr class="row0">
-<td class="file">filteredbrk.h</td><td class="proto">icu::FilteredBreakIteratorBuilder::~FilteredBreakIteratorBuilder()</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_NO_LOWERCASE</td><td class="">(moved from ucasemap.h)</td><td>Stable<br>
+<span class=""><span>ICU 3.8</span></span></td>
</tr>
<tr class="row1">
-<td class="file">filteredbrk.h</td><td class="proto"><tt>static</tt> FilteredBreakIteratorBuilder* icu::FilteredBreakIteratorBuilder::createInstance(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_SENTENCES</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">filteredbrk.h</td><td class="proto"><tt>static</tt> FilteredBreakIteratorBuilder* icu::FilteredBreakIteratorBuilder::createInstance(const Locale&, UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> U_TITLECASE_WHOLE_STRING</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">fmtable.h</td><td class="proto">icu::Formattable::Formattable(StringPiece, UErrorCode&)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">stringoptions.h</td><td class="proto"><tt>#define</tt> UNORM_INPUT_IS_FCD</td><td class="">(moved from unorm2.h)</td><td>Stable<br>
+<span class=""><span>ICU 2.2</span></span></td>
</tr>
+
<tr class="row0">
-<td class="file">fmtable.h</td><td class="proto">void icu::Formattable::setDecimalNumber(StringPiece, UErrorCode&)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::labelToASCII_UTF8(StringPiece, ByteSink&, IDNAInfo&, UErrorCode&)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.6</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_KANA_EXTENDED_A</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::labelToUnicodeUTF8(StringPiece, ByteSink&, IDNAInfo&, UErrorCode&)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.6</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MASARAM_GONDI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::nameToASCII_UTF8(StringPiece, ByteSink&, IDNAInfo&, UErrorCode&)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.6</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_NUSHU</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::nameToUnicodeUTF8(StringPiece, ByteSink&, IDNAInfo&, UErrorCode&)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.6</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_SOYOMBO</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">localpointer.h</td><td class="proto">icu::LocalArray< T >::LocalArray(T*, UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_SYRIAC_SUPPLEMENT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">localpointer.h</td><td class="proto">void icu::LocalArray< T >::adoptInsteadAndCheckErrorCode(T*, UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_ZANABAZAR_SQUARE</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">localpointer.h</td><td class="proto">void icu::LocalArray< T >::swap(LocalArray< T >&) U_NOEXCEPT</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_MALAYALAM_BHA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">localpointer.h</td><td class="proto">void icu::LocalPointer< T >::swap(LocalPointer< T >&) U_NOEXCEPT</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_MALAYALAM_JA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createCentury(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_MALAYALAM_LLA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createCupMetric(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_MALAYALAM_LLLA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createGenericTemperature(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_MALAYALAM_NGA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createKnot(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_MALAYALAM_NNA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createLiterPer100Kilometers(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_MALAYALAM_NNNA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createMileScandinavian(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_MALAYALAM_NYA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createPintMetric(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_MALAYALAM_RA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createRevolutionAngle(UErrorCode&)</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_MALAYALAM_SSA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">numfmt.h</td><td class="proto">UnicodeString& icu::NumberFormat::format(StringPiece, UnicodeString&, FieldPositionIterator*, UErrorCode&)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_MALAYALAM_TTA</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_ADLAM</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EMOJI_COMPONENT</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_BHAIKSUKI</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_PREPENDED_CONCATENATION_MARK</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_CYRILLIC_EXTENDED_C</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_REGIONAL_INDICATOR</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_GLAGOLITIC_SUPPLEMENT</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_MASARAM_GONDI</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_IDEOGRAPHIC_SYMBOLS_AND_PUNCTUATION</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_SOYOMBO</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MARCHEN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_ZANABAZAR_SQUARE</td><td class="">(missing)</td><td>Stable<br>
+<span class=""><span>ICU 60</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MONGOLIAN_SUPPLEMENT</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">utf_old.h</td><td class="proto"><tt>#define</tt> U_HIDE_OBSOLETE_UTF_OLD_H</td><td class="">(missing)</td><td>Deprecated<br>
+<span class=""><span>ICU 2.4</span></span></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_NEWA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_GET_OR_FFFD</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_OSAGE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_NEXT_OR_FFFD</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_TANGUT_COMPONENTS</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">utf16.h</td><td class="proto"><tt>#define</tt> U16_PREV_OR_FFFD</td><td class="">(missing)</td><td>Draft<br>
+<span class=""><span>ICU 60</span></span></td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_TANGUT</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">utf8.h</td><td class="proto"><tt>#define</tt> U8_IS_VALID_LEAD3_AND_T1</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_E_BASE_GAZ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">utf8.h</td><td class="proto"><tt>#define</tt> U8_IS_VALID_LEAD4_AND_T1</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_E_BASE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">utf8.h</td><td class="proto"><tt>#define</tt> U8_LEAD3_T1_BITS</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_E_MODIFIER</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">utf8.h</td><td class="proto"><tt>#define</tt> U8_LEAD4_T1_BITS</td><td class="">(missing)</td><td>Internal<br>
+</td>
</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_GLUE_AFTER_ZWJ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_ZWJ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_AFRICAN_FEH</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_AFRICAN_NOON</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_AFRICAN_QAF</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_E_BASE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_E_MODIFIER</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_ZWJ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_E_BASE_GAZ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_E_BASE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_E_MODIFIER</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_GLUE_AFTER_ZWJ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_ZWJ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatBooleanAttribute::UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
-</tr>
-<tr class="row0">
-<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatBooleanAttribute::UDAT_PARSE_PARTIAL_LITERAL_MATCH</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
-</tr>
-<tr class="row1">
-<td class="file">unistr.h</td><td class="proto"><tt>#define</tt> UNISTR_OBJECT_SIZE</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
-</tr>
-<tr class="row0">
-<td class="file">unistr.h</td><td class="proto"><tt>static</tt> UnicodeString icu::UnicodeString::fromUTF8(StringPiece)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.2</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">unistr.h</td><td class="proto">void icu::UnicodeString::swap(UnicodeString&) U_NOEXCEPT</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
-</tr>
-<tr class="row0">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatStyle::UNUM_CURRENCY_STANDARD</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
-</tr>
-<tr class="row1">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatStyle::UNUM_DECIMAL_COMPACT_LONG</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
-</tr>
-<tr class="row0">
-<td class="file">unum.h</td><td class="proto"><tt>enum</tt> UNumberFormatStyle::UNUM_DECIMAL_COMPACT_SHORT</td><td class="" colspan="2" align="center">Draft→Stable<br>ICU 56</td>
-</tr>
-<tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_ADLAM</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_BHAIKSUKI</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_HAN_WITH_BOPOMOFO</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_JAMO</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_MARCHEN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_NEWA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_OSAGE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_SYMBOLS_EMOJI</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_checkUTF8(const USpoofChecker*, const char*, int32_t, int32_t*, UErrorCode*)</td><td class="">Deprecated<br>ICU 51</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.2</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_checkUnicodeString(const USpoofChecker*, const icu::UnicodeString&, int32_t*, UErrorCode*)</td><td class="">Deprecated<br>ICU 51</td><td>Stable<br>
-<span class="verchange"><span>ICU 4.2</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
-<tr class="row1">
-<td class="file">utypes.h</td><td class="proto"><tt>#define</tt> NULL</td><td class="">Deprecated<br>ICU 54</td><td>Stable<br>
-<span class="verchange"><span>ICU 2.0</span>
-<br>
-<b class="bigwarn" title="A stable API changed version.">(changed)</b></span></td>
-</tr>
</table>
<P></P>
<a href="#_top">(jump back to top)</a>
<hr>
-<a name="added"></a>
-<h2>Added in ICU 58</h2>
+<a name="other"></a>
+<h2>Other existing drafts in ICU 60</h2>
+<div class="other">
<table BORDER="1" class="genTable">
<THEAD>
<tr>
-<th>File</th><th>API</th><th>ICU 57</th><th>ICU 58</th>
+<th>File</th><th>API</th><th>ICU 59</th><th>ICU 60</th>
</tr>
</THEAD>
<tr class="row1">
-<td class="file">bytestrie.h</td><td class="proto">StringPiece icu::BytesTrie::Iterator::getString()</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.8</span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::fold(uint32_t, const char16_t*, int32_t, char16_t*, int32_t, Edits*, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row0">
-<td class="file">bytestriebuilder.h</td><td class="proto">BytesTrieBuilder& icu::BytesTrieBuilder::add(StringPiece, int32_t, UErrorCode&)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.8</span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::toLower(const char*, uint32_t, const char16_t*, int32_t, char16_t*, int32_t, Edits*, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">compactdecimalformat.h</td><td class="proto">UnicodeString& icu::CompactDecimalFormat::format(StringPiece, UnicodeString&, FieldPositionIterator*, UErrorCode&)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::toTitle(const char*, uint32_t, BreakIterator*, const char16_t*, int32_t, char16_t*, int32_t, Edits*, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row0">
-<td class="file">decimfmt.h</td><td class="proto">UnicodeString& icu::DecimalFormat::format(StringPiece, UnicodeString&, FieldPositionIterator*, UErrorCode&)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::toUpper(const char*, uint32_t, const char16_t*, int32_t, char16_t*, int32_t, Edits*, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">fmtable.h</td><td class="proto">icu::Formattable::Formattable(StringPiece, UErrorCode&)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::utf8Fold(uint32_t, const char*, int32_t, char*, int32_t, Edits*, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row0">
-<td class="file">fmtable.h</td><td class="proto">void icu::Formattable::setDecimalNumber(StringPiece, UErrorCode&)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::utf8ToLower(const char*, uint32_t, const char*, int32_t, char*, int32_t, Edits*, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::labelToASCII_UTF8(StringPiece, ByteSink&, IDNAInfo&, UErrorCode&)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.6</span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::utf8ToTitle(const char*, uint32_t, BreakIterator*, const char*, int32_t, char*, int32_t, Edits*, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row0">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::labelToUnicodeUTF8(StringPiece, ByteSink&, IDNAInfo&, UErrorCode&)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.6</span></span></td>
+<td class="file">casemap.h</td><td class="proto"><tt>static</tt> int32_t icu::CaseMap::utf8ToUpper(const char*, uint32_t, const char*, int32_t, char*, int32_t, Edits*, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::nameToASCII_UTF8(StringPiece, ByteSink&, IDNAInfo&, UErrorCode&)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.6</span></span></td>
+<td class="file">char16ptr.h</td><td class="proto">char16_t* icu::Char16Ptr::get()</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row0">
-<td class="file">idna.h</td><td class="proto">void icu::IDNA::nameToUnicodeUTF8(StringPiece, ByteSink&, IDNAInfo&, UErrorCode&)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.6</span></span></td>
+<td class="file">char16ptr.h</td><td class="proto">const char16_t* icu::ConstChar16Ptr::get()</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">measfmt.h</td><td class="proto">UnicodeString icu::MeasureFormat::getUnitDisplayName(const MeasureUnit&, UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::Char16Ptr(char16_t*)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createEast(UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::Char16Ptr(std::nullptr_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createNorth(UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::Char16Ptr(uint16_t*)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createSouth(UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::Char16Ptr(wchar_t*)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createWest(UErrorCode&)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::operator char16_t* ()</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row0">
-<td class="file">numfmt.h</td><td class="proto">UnicodeString& icu::NumberFormat::format(StringPiece, UnicodeString&, FieldPositionIterator*, UErrorCode&)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.4</span></span></td>
+<td class="file">char16ptr.h</td><td class="proto">icu::Char16Ptr::~Char16Ptr()</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">tznames.h</td><td class="proto">void icu::TimeZoneNames::getDisplayNames(const UnicodeString&, const UTimeZoneNameType types[], int32_t, UDate, UnicodeString dest[], UErrorCode&)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::ConstChar16Ptr(const char16_t*)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row0">
-<td class="file">tznames.h</td><td class="proto">void icu::TimeZoneNames::loadAllDisplayNames(UErrorCode&)</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
+<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::ConstChar16Ptr(const std::nullptr_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">ubiditransform.h</td><td class="proto">UBiDiTransform* ubiditransform_open(UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::ConstChar16Ptr(const uint16_t*)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row0">
-<td class="file">ubiditransform.h</td><td class="proto"><tt>enum</tt> UBiDiMirroring::UBIDI_MIRRORING_OFF</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::ConstChar16Ptr(const wchar_t*)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">ubiditransform.h</td><td class="proto"><tt>enum</tt> UBiDiMirroring::UBIDI_MIRRORING_ON</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::operator const char16_t* ()</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row0">
-<td class="file">ubiditransform.h</td><td class="proto"><tt>enum</tt> UBiDiOrder::UBIDI_LOGICAL</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">char16ptr.h</td><td class="proto">icu::ConstChar16Ptr::~ConstChar16Ptr()</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">ubiditransform.h</td><td class="proto"><tt>enum</tt> UBiDiOrder::UBIDI_VISUAL</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">edits.h</td><td class="proto">Iterator icu::Edits::getCoarseChangesIterator()</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row0">
-<td class="file">ubiditransform.h</td><td class="proto">uint32_t ubiditransform_transform(UBiDiTransform*, const UChar*, int32_t, UChar*, int32_t, UBiDiLevel, UBiDiOrder, UBiDiLevel, UBiDiOrder, UBiDiMirroring, uint32_t, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">edits.h</td><td class="proto">Iterator icu::Edits::getCoarseIterator()</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">ubiditransform.h</td><td class="proto">void ubiditransform_close(UBiDiTransform*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
+<td class="file">edits.h</td><td class="proto">Iterator icu::Edits::getFineChangesIterator()</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_ADLAM</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">edits.h</td><td class="proto">Iterator icu::Edits::getFineIterator()</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_BHAIKSUKI</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">edits.h</td><td class="proto">UBool icu::Edits::copyErrorTo(UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_CYRILLIC_EXTENDED_C</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">edits.h</td><td class="proto">UBool icu::Edits::hasChanges()</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_GLAGOLITIC_SUPPLEMENT</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">edits.h</td><td class="proto">icu::Edits::Edits()</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_IDEOGRAPHIC_SYMBOLS_AND_PUNCTUATION</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">edits.h</td><td class="proto">icu::Edits::~Edits()</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MARCHEN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">edits.h</td><td class="proto">int32_t icu::Edits::lengthDelta()</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_MONGOLIAN_SUPPLEMENT</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">edits.h</td><td class="proto">void icu::Edits::addReplace(int32_t, int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_NEWA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">edits.h</td><td class="proto">void icu::Edits::addUnchanged(int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_OSAGE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">edits.h</td><td class="proto">void icu::Edits::reset()</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_TANGUT_COMPONENTS</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">localpointer.h</td><td class="proto">LocalArray<T>& icu::LocalArray< T >::moveFrom(LocalArray< T >&)</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
</tr>
<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UBlockCode::UBLOCK_TANGUT</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
+<td class="file">localpointer.h</td><td class="proto">LocalPointer<T>& icu::LocalPointer< T >::moveFrom(LocalPointer< T >&)</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
</tr>
<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_E_BASE_GAZ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_E_BASE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_E_MODIFIER</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_GLUE_AFTER_ZWJ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UGraphemeClusterBreak::U_GCB_ZWJ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_AFRICAN_FEH</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_AFRICAN_NOON</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UJoiningGroup::U_JG_AFRICAN_QAF</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_E_BASE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_E_MODIFIER</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> ULineBreak::U_LB_ZWJ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_E_BASE_GAZ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_E_BASE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_E_MODIFIER</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_GLUE_AFTER_ZWJ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UWordBreakValues::U_WB_ZWJ</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">udisplaycontext.h</td><td class="proto"><tt>enum</tt> UDisplayContext::UDISPCTX_NO_SUBSTITUTE</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">udisplaycontext.h</td><td class="proto"><tt>enum</tt> UDisplayContext::UDISPCTX_SUBSTITUTE</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">udisplaycontext.h</td><td class="proto"><tt>enum</tt> UDisplayContextType::UDISPCTX_TYPE_SUBSTITUTE_HANDLING</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">unistr.h</td><td class="proto"><tt>static</tt> UnicodeString icu::UnicodeString::fromUTF8(StringPiece)</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 4.2</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_ADLAM</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_BHAIKSUKI</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_HAN_WITH_BOPOMOFO</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_JAMO</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_MARCHEN</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_NEWA</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_OSAGE</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row0">
-<td class="file">uscript.h</td><td class="proto"><tt>enum</tt> UScriptCode::USCRIPT_SYMBOLS_EMOJI</td><td class="">(missing)</td><td>Stable<br>
-<span class=""><span>ICU 58</span></span></td><td class="bornstable"><b class="bigwarn" title="A new API was introduced as stable in $rightVer.">(Born Stable)</b></td>
-</tr>
-<tr class="row1">
-<td class="file">uspoof.h</td><td class="proto">URestrictionLevel uspoof_getCheckResultRestrictionLevel(const USpoofCheckResult*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uspoof.h</td><td class="proto">USpoofCheckResult* uspoof_openCheckResult(UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uspoof.h</td><td class="proto">U_DEFINE_LOCAL_OPEN_POINTER(LocalUSpoofCheckResultPointer,,)</td><td class="">(missing)</td><td>
-<br>
-<span class=""><span></span>
-<br>
-<b class="bigwarn" title="A new API was introduced that was not tagged.">(untagged)</b></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uspoof.h</td><td class="proto">U_NAMESPACE_END int32_t uspoof_getCheckResultChecks(const USpoofCheckResult*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uspoof.h</td><td class="proto">const USet* uspoof_getCheckResultNumerics(const USpoofCheckResult*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uspoof.h</td><td class="proto"><tt>enum</tt> URestrictionLevel::USPOOF_UNDEFINED_RESTRICTIVE</td><td class="">(missing)</td><td>Internal<br>
-<span class=""><span></span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uspoof.h</td><td class="proto"><tt>enum</tt> USpoofChecks::USPOOF_CONFUSABLE</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_check2(const USpoofChecker*, const UChar*, int32_t, USpoofCheckResult*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_check2UTF8(const USpoofChecker*, const char*, int32_t, USpoofCheckResult*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
-</tr>
-<tr class="row0">
-<td class="file">uspoof.h</td><td class="proto">int32_t uspoof_check2UnicodeString(const USpoofChecker*, const icu::UnicodeString&, USpoofCheckResult*, UErrorCode*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
-</tr>
-<tr class="row1">
-<td class="file">uspoof.h</td><td class="proto">void uspoof_closeCheckResult(USpoofCheckResult*)</td><td class="">(missing)</td><td>Draft<br>
-<span class=""><span>ICU 58</span></span></td>
-</tr>
-</table>
-<P></P>
-<a href="#_top">(jump back to top)</a>
-<hr>
-<a name="other"></a>
-<h2>Other existing drafts in ICU 58</h2>
-<div class="other">
-<table BORDER="1" class="genTable">
-<THEAD>
-<tr>
-<th>File</th><th>API</th><th>ICU 57</th><th>ICU 58</th>
-</tr>
-</THEAD>
-<tr class="row1">
-<td class="file">localpointer.h</td><td class="proto">LocalArray<T>& icu::LocalArray< T >::moveFrom(LocalArray< T >&) U_NOEXCEPT</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
-</tr>
-<tr class="row0">
-<td class="file">localpointer.h</td><td class="proto">LocalPointer<T>& icu::LocalPointer< T >::moveFrom(LocalPointer< T >&) U_NOEXCEPT</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
-</tr>
-<tr class="row1">
<td class="file">measfmt.h</td><td class="proto">void icu::MeasureFormat::parseObject(const UnicodeString&, Formattable&, ParsePosition&)</td><td class="" colspan="2" align="center">Draft<br>ICU 53</td>
</tr>
<tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createGallonImperial(UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createPoint(UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createMilePerGallonImperial(UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">ubrk.h</td><td class="proto">UBreakIterator* ubrk_openBinaryRules(const uint8_t*, int32_t, const UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createMilligramPerDeciliter(UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">ubrk.h</td><td class="proto">int32_t ubrk_getBinaryRules(UBreakIterator*, uint8_t*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createMillimolePerLiter(UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">unistr.h</td><td class="proto">UNISTR_FROM_STRING_EXPLICIT icu::UnicodeString::UnicodeString(const uint16_t*)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row0">
-<td class="file">measunit.h</td><td class="proto"><tt>static</tt> MeasureUnit* icu::MeasureUnit::createPartPerMillion(UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">unistr.h</td><td class="proto">UNISTR_FROM_STRING_EXPLICIT icu::UnicodeString::UnicodeString(const wchar_t*)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">reldatefmt.h</td><td class="proto">UnicodeString& icu::RelativeDateTimeFormatter::format(double, URelativeDateTimeUnit, UnicodeString&, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">unistr.h</td><td class="proto">UnicodeString& icu::UnicodeString::moveFrom(UnicodeString&)</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
</tr>
<tr class="row0">
-<td class="file">reldatefmt.h</td><td class="proto">UnicodeString& icu::RelativeDateTimeFormatter::formatNumeric(double, URelativeDateTimeUnit, UnicodeString&, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(const std::nullptr_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">simpleformatter.h</td><td class="proto">SimpleFormatter& icu::SimpleFormatter::operator=(const SimpleFormatter&)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(const std::nullptr_t, int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row0">
-<td class="file">simpleformatter.h</td><td class="proto">UBool icu::SimpleFormatter::applyPattern(const UnicodeString&, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(const uint16_t*, int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">simpleformatter.h</td><td class="proto">UBool icu::SimpleFormatter::applyPatternMinMaxArguments(const UnicodeString&, int32_t, int32_t, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(const wchar_t*, int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row0">
-<td class="file">simpleformatter.h</td><td class="proto">UnicodeString icu::SimpleFormatter::getTextWithNoArguments()</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(std::nullptr_t, int32_t, int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">simpleformatter.h</td><td class="proto">UnicodeString& icu::SimpleFormatter::format(const UnicodeString&, UnicodeString&, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(uint16_t*, int32_t, int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row0">
-<td class="file">simpleformatter.h</td><td class="proto">UnicodeString& icu::SimpleFormatter::format(const UnicodeString&, const UnicodeString&, UnicodeString&, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">unistr.h</td><td class="proto">icu::UnicodeString::UnicodeString(wchar_t*, int32_t, int32_t)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">simpleformatter.h</td><td class="proto">UnicodeString& icu::SimpleFormatter::format(const UnicodeString&, const UnicodeString&, const UnicodeString&, UnicodeString&, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">unum.h</td><td class="proto">int32_t unum_formatDoubleForFields(const UNumberFormat*, double, UChar*, int32_t, UFieldPositionIterator*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row0">
-<td class="file">simpleformatter.h</td><td class="proto">UnicodeString& icu::SimpleFormatter::formatAndAppend(const UnicodeString* const*, int32_t, UnicodeString&, int32_t*, int32_t, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
+<td class="file">upluralrules.h</td><td class="proto">UEnumeration* uplrules_getKeywords(const UPluralRules*, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 59</td>
</tr>
<tr class="row1">
-<td class="file">simpleformatter.h</td><td class="proto">UnicodeString& icu::SimpleFormatter::formatAndReplace(const UnicodeString* const*, int32_t, UnicodeString&, int32_t*, int32_t, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">simpleformatter.h</td><td class="proto">icu::SimpleFormatter::SimpleFormatter()</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">simpleformatter.h</td><td class="proto">icu::SimpleFormatter::SimpleFormatter(const SimpleFormatter&)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">simpleformatter.h</td><td class="proto">icu::SimpleFormatter::SimpleFormatter(const UnicodeString&, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">simpleformatter.h</td><td class="proto">icu::SimpleFormatter::SimpleFormatter(const UnicodeString&, int32_t, int32_t, UErrorCode&)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">simpleformatter.h</td><td class="proto">icu::SimpleFormatter::~SimpleFormatter()</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">simpleformatter.h</td><td class="proto">int32_t icu::SimpleFormatter::getArgumentLimit()</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EMOJI_MODIFIER_BASE</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EMOJI_MODIFIER</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EMOJI_PRESENTATION</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">uchar.h</td><td class="proto"><tt>enum</tt> UProperty::UCHAR_EMOJI</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">udat.h</td><td class="proto"><tt>enum</tt> UDateFormatField::UDAT_AM_PM_MIDNIGHT_NOON_FIELD</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">unistr.h</td><td class="proto">UnicodeString& icu::UnicodeString::moveFrom(UnicodeString&) U_NOEXCEPT</td><td class="" colspan="2" align="center">Draft<br>ICU 56</td>
-</tr>
-<tr class="row0">
<td class="file">uregex.h</td><td class="proto"><tt>enum</tt> URegexpFlag::UREGEX_CANON_EQ</td><td class="" colspan="2" align="center">Draft<br>ICU 2.4</td>
</tr>
-<tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto">URelativeDateTimeFormatter* ureldatefmt_open(const char*, UNumberFormat*, UDateRelativeDateTimeFormatterStyle, UDisplayContext, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_DAY</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_FRIDAY</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_HOUR</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_MINUTE</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_MONDAY</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_MONTH</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_QUARTER</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_SATURDAY</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_SECOND</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_SUNDAY</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_THURSDAY</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_TUESDAY</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_WEDNESDAY</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_WEEK</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto"><tt>enum</tt> URelativeDateTimeUnit::UDAT_REL_UNIT_YEAR</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto">int32_t ureldatefmt_combineDateAndTime(const URelativeDateTimeFormatter*, const UChar*, int32_t, const UChar*, int32_t, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto">int32_t ureldatefmt_format(const URelativeDateTimeFormatter*, double, URelativeDateTimeUnit, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row1">
-<td class="file">ureldatefmt.h</td><td class="proto">int32_t ureldatefmt_formatNumeric(const URelativeDateTimeFormatter*, double, URelativeDateTimeUnit, UChar*, int32_t, UErrorCode*)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
-<tr class="row0">
-<td class="file">ureldatefmt.h</td><td class="proto">void ureldatefmt_close(URelativeDateTimeFormatter*)</td><td class="" colspan="2" align="center">Draft<br>ICU 57</td>
-</tr>
</table>
</div>
<P></P>
@@ -3191,13 +1335,12 @@
<i>This section shows cases where the signature was "simplified" for the sake of comparison. The simplified form is in bold, followed by
all possible variations in "original" form.</i>
<div class="other">
-<ul></ul>
</div>
<P></P>
<a href="#_top">(jump back to top)</a>
<hr>
<p>
-<i><font size="-1">Contents generated by StableAPI tool on Thu Sep 22 11:14:21 PDT 2016<br>Copyright (C) 2016, International Business Machines Corporation, All Rights Reserved.</font></i>
+<i><font size="-1">Contents generated by StableAPI tool on Wed Oct 04 23:55:39 UTC 2017<br>Copyright (C) 2017, International Business Machines Corporation, All Rights Reserved.</font></i>
</p>
</body>
</html>
Modified: trunk/Build/source/libs/icu/icu-src/LICENSE
===================================================================
--- trunk/Build/source/libs/icu/icu-src/LICENSE 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/LICENSE 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,6 +1,6 @@
COPYRIGHT AND PERMISSION NOTICE (ICU 58 and later)
-Copyright © 1991-2016 Unicode, Inc. All rights reserved.
+Copyright © 1991-2017 Unicode, Inc. All rights reserved.
Distributed under the Terms of Use in http://www.unicode.org/copyright.html
Permission is hereby granted, free of charge, to any person obtaining
@@ -131,7 +131,7 @@
# ---------COPYING.libtabe ---- BEGIN--------------------
#
# /*
- # * Copyrighy (c) 1999 TaBE Project.
+ # * Copyright (c) 1999 TaBE Project.
# * Copyright (c) 1999 Pai-Hsiang Hsiao.
# * All rights reserved.
# *
Modified: trunk/Build/source/libs/icu/icu-src/license.html
===================================================================
--- trunk/Build/source/libs/icu/icu-src/license.html 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/license.html 2018-01-12 18:35:28 UTC (rev 46290)
@@ -11,8 +11,8 @@
The ICU license is now in plain text format, see <a href="./LICENSE">LICENSE</a>.
Update links and software appropriately.
</p>
- <i>Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html</i>
- <i>Copyright (c) 1995-2016 International Business Machines Corporation and others</i>
+ <i>© 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html</i>
+ <i>© 1995-2016 International Business Machines Corporation and others</i>
</body>
</html>
Modified: trunk/Build/source/libs/icu/icu-src/readme.html
===================================================================
--- trunk/Build/source/libs/icu/icu-src/readme.html 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/readme.html 2018-01-12 18:35:28 UTC (rev 46290)
@@ -3,7 +3,7 @@
<html lang="en-US" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US">
<head>
- <title>ReadMe for ICU 58.2</title>
+ <title>ReadMe for ICU 60.2</title>
<meta name="COPYRIGHT" content=
"Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html"/>
<!-- meta name="COPYRIGHT" content=
@@ -32,7 +32,7 @@
International Components for Unicode<br/>
<span class="only-rc">Release Candidate</span>
<span class="only-milestone">(Milestone Release)</span>
- <abbr title="International Components for Unicode">ICU</abbr> 58.2 ReadMe
+ <abbr title="International Components for Unicode">ICU</abbr> 60.2 ReadMe
</h1>
<!-- Shouldn't need to comment/uncomment this paragraph, just change the body class -->
@@ -44,12 +44,15 @@
<p class="note only-rc">This is a release candidate version of ICU4C.
It is not recommended for production use.</p>
- <p>Last updated: 2016-Dec-8<br/>
+ <p>Last updated: 2017-Dec-07<br/>
Copyright © 2016 and later: Unicode, Inc. and others. License & terms of use:
<a href="http://www.unicode.org/copyright.html">http://www.unicode.org/copyright.html</a><br/>
Copyright © 1997-2016 International Business Machines Corporation and others.
All Rights Reserved.</p>
<!-- Remember that there is a copyright at the end too -->
+
+ <p class="note">This is a maintenance update of ICU 60,
+ with a small number of bug fixes but no API changes.</p>
<hr/>
<h2 class="TOC">Table of Contents</h2>
@@ -59,10 +62,8 @@
<li><a href="#GettingStarted">Getting Started</a></li>
- <li><a href="#News">What Is New In This release?</a></li>
+ <li><a href="#News">What Is New In This Release?</a></li>
- <li><a href="#RecentPreviousChanges">Changes in recent previous releases</a></li>
-
<li><a href="#Download">How To Download the Source Code</a></li>
<li><a href="#SourceCode">ICU Source Code Organization</a></li>
@@ -230,149 +231,25 @@
</table>
<p><strong>Important:</strong> Please make sure you understand the <a href=
- "http://source.icu-project.org/repos/icu/icu/trunk/LICENSE">Copyright and License Information</a>.</p>
+ "http://source.icu-project.org/repos/icu/trunk/icu4c/LICENSE">Copyright and License Information</a>.</p>
- <h2><a name="News" href="#News" id="News">What is new in this
- release?</a></h2>
- <h3>New License</h3>
- <p>This is the first release of ICU since the project
- <a href="http://blog.unicode.org/2016/05/icu-joins-unicode-consortium.html">joined
- the Unicode Consortium</a>. The license has changed to the
- <a href="http://www.unicode.org/copyright.html#License">Unicode license</a>
- (which is similar to the ICU 1.8.1-57 license).</p>
+ <h2><a name="News" href="#News" id="News">What Is New In This Release?</a></h2>
- <h3>Layout Engine Removed</h3>
- <p>The LayoutEngine was deprecated in ICU 54 and has now been removed.
- see <a href='http://userguide.icu-project.org/layoutengine'>the
- User's Guide</a> for more details and migration recommendations.
- </p>
- <p>
- Note that the ParagraphLayout (layoutex) library is not deprecated.
- There is a new option, <tt>--enable-layoutex</tt> which will build
- the ParagraphLayout library using <a href="http://harfbuzz.org">HarfBuzz</a>
- instead of ICU as the layout engine. See <a href="http://userguide.icu-project.org/layoutengine">
- the users' guide</a> for more information about how to build.
- </p>
- <p>
- The options <tt>--disable-layout</tt>
- or <tt>--with-layout=false</tt> are being retained for
- compatibility, but have no effect.
- </p>
+ <p>See the <a href="http://site.icu-project.org/download/60">ICU 60 download page</a>
+ for an overview of this release, important changes, new features, bug fixes, known issues,
+ changes to supported platforms and build environments,
+ and migration issues for existing applications migrating from previous ICU releases.</p>
- <h3>Changes in CLDR 30 data</h3>
- <ul>
- <li>For some combinations of numbering system (arab, arabext, latn) and/or locale
- (ar, fa, he), there were changes to the bidirectional control characters used
- with certain symbols (percent, minus, plus), and changes to number patterns
- (currency and/or percent, including addition of bidirectional control
- characters in some cases).</li>
- <li>The bidirectional controls used for such purposes now include U+061C ARABIC
- LETTER MARK (ALM), which requires use of the bidirectional algorithm from
- Unicode 6.3 or later.</li>
- <li>The time separator for Norwegian locales (nb, nn) was changed to be ‘:’
- throughout.</li>
- <li>For more information on CLDR 30 changes, see
- <a href="http://cldr.unicode.org/index/downloads/cldr-30">CLDR 30 download
- page</a>.</li>
- </ul>
+ <p>See the <a href="APIChangeReport.html">API Change Report</a> for a complete list of
+ APIs added, removed, or changed in this release.</p>
- <h3>Windows build changes</h3>
- <p>Windows builds using Visual Studio now require Visual Studio 2015; otherwise you can
- use cygwin or similar to build for Windows.</p>
+ <p><a name="RecentPreviousChanges" id="RecentPreviousChanges"></a>For
+ changes in previous releases, see the
+ main <a href="http://site.icu-project.org/download">ICU download page</a>
+ with its version-specific subpages.</p>
- <h3>API Changes</h3>
- <p>See the <a href="APIChangeReport.html">API Change Report</a> for a complete
- list of APIs added, removed, or changed in this release.</p>
- <!-- standing item -->
- <h3>Full release notes and the latest updates</h3>
- <p>The previous list concentrates on <em>changes that affect existing
- applications migrating from previous ICU releases</em>.
- For more news about this release, as well as late-breaking news, see the
- <a href="http://site.icu-project.org/download/57">ICU download page</a>.</p>
-
- <h3>Upcoming changes</h3>
- <p>Please note the following changes planned for an upcoming ICU4C release (likely ICU 59):</p>
- <ul>
- <li>Compiler support for C++11 will be required.</li>
- <li>Support for Windows XP will be removed.</li>
- </ul>
-
- <h2><a name="RecentPreviousChanges" href="#RecentPreviousChanges" id="RecentPreviousChanges">Changes in recent
- previous releases</a></h2>
-
- <!-- ICU 57 items -->
- <h3>ICU 57: Changes related to new CLDR data and specifications</h3>
- <ul>
- <li>Time formats may include the new day period characters b, B, and
- these may produced in response to the new skeleton character C used
- with DateTimePatternGenerator.</li>
- <li>In day period rules, the use of "after" has been deprecated.</li>
- <li>The measurement unit "proportion-karat" has been renamed to
- "concentr-karat".</li>
- </ul>
-
- <!-- ICU 56 items -->
- <h3>ICU 56: COLON withdrawn as date/time pattern character</h3>
- <p>In ICU 55, COLON was introduced as a date/time pattern character
- to be replaced by the value of the timeSeparator for the number
- system being used; a corresponding new UDateFormatField
- UDAT_TIME_SEPARATOR_FIELD was added. Use of COLON caused some
- backwards compatibility problems, so it is being withdrawn as a
- pattern character. However, UDAT_TIME_SEPARATOR_FIELD remains
- as does the mechanism for replacing a pattern character with the
- value of the timeSeparator; a new pattern character may be
- assigned in the future.</p>
-
- <h3>ICU 56: ICU Plugins are disabled by default</h3>
- <p>ICU Plugins are now disabled by default. They may be enabled
- with the configure option
- <tt>--enable-plugins</tt> or by means of
- <tt>#define UCONFIG_ENABLE_PLUGINS</tt>.
- </p>
-
- <h3>ICU 55: Deprecations in PluralRules (plurrule.h)</h3>
- <p>The following PluralRules methods never had an implementation
- but were inadvertently marked @stable; they have now been
- deprecated. [#<a href="http://bugs.icu-project.org/trac/ticket/10759">10759</a>]</p>
- <ul>
- <li><tt>double icu::PluralRules::getUniqueKeywordValue(const UnicodeString&)</tt></li>
- <li><tt>int32_t icu::PluralRules::getAllKeywordValues(const UnicodeString&, double*, int32_t, UErrorCode&)</tt></li>
- </ul>
-
- <h3>ICU 55: Deprecate uidna.h functions for IDNA2003 support</h3>
- <p>The IDNA2003 API has been deprecated; use the API for IDNA2008 / UTS #46 instead via
- uidna_openUTS46() or class IDNA [#<a href="http://bugs.icu-project.org/trac/ticket/8477">8477</a>].
- This applies to the following:</p>
- <ul>
- <li><tt>enum value UIDNA_ALLOW_UNASSIGNED</tt></li>
- <li><tt>uidna_IDNToASCII</tt></li>
- <li><tt>uidna_IDNToUnicode</tt></li>
- <li><tt>uidna_compare</tt></li>
- <li><tt>uidna_toASCII</tt></li>
- <li><tt>uidna_toUnicode</tt></li>
- </ul>
-
- <h3>ICU 54: Deprecation of Collation Short Strings</h3>
- <p>The collation short naming scheme and its API functions are deprecated.
- Use ucol_open() with language tag collation keywords instead (see <a href="http://userguide.icu-project.org/collation/api">Collation API Details</a>). For example, <code>ucol_open("de-u-co-phonebk-ka-shifted", &errorCode)</code>
- for German Phonebook order with "ignore punctuation" mode.</p>
-
- <h3>ICU 54: Deprecation of UCOL_TAILORINGS_VERSION</h3>
- <p>This was originally intended to be the version of collation tailorings,
- but that information is actually in the tailorings data and this
- constant has always been (and now will continue to be) 1.</p>
-
- <!-- ICU 53 items -->
- <h3>ICU 53: Deprecation of TimeUnitFormat</h3>
- <p>The TimeUnitFormat and its methods were actually deprecated in ICU 53 and the
- class as a whole was tagged as deprecated in that release, but the status tags for
- the individual methods did not correctly indicate the deprecated status; they
- do as of ICU 54. Use the MeasureFormat class and its methods instead.</p>
-
- <!-- end of What's New items -->
-
<h2><a name="Download" href="#Download" id="Download">How To Download the
Source Code</a></h2>
@@ -505,13 +382,32 @@
<li><b>brkitr/</b> Data files for character, word, sentence, title
casing and line boundary analysis.</li>
+ <li><b>coll/</b> Data for collation tailorings. The makefile
+ <b>colfiles.mk</b> contains the list of resource bundle files.</li>
+
<li><b>locales/</b> These .txt files contain ICU language and
culture-specific localization data. Two special bundles are
<b>root</b>, which is the fallback data and parent of other bundles,
and <b>index</b>, which contains a list of installed bundles. The
makefile <b>resfiles.mk</b> contains the list of resource bundle
- files.</li>
+ files. Some of the locale data is split out into the type-specific
+ directories curr, lang, region, unit, and zone, described below.</li>
+ <li><b>curr/</b> Locale data for currency symbols and names (including
+ plural forms), with its own makefile <b>resfiles.mk</b>.</li>
+
+ <li><b>lang/</b> Locale data for names of languages, scripts, and locale
+ key names and values, with its own makefile <b>resfiles.mk</b>.</li>
+
+ <li><b>region/</b> Locale data for names of regions, with its own
+ makefile <b>resfiles.mk</b>.</li>
+
+ <li><b>unit/</b> Locale data for measurement unit patterns and names,
+ with its own makefile <b>resfiles.mk</b>.</li>
+
+ <li><b>zone/</b> Locale data for time zone names, with its own
+ makefile <b>resfiles.mk</b>.</li>
+
<li><b>mappings/</b> Here are the code page converter tables. These
.ucm files contain mappings to and from Unicode. These are compiled
into .cnv files. <b>convrtrs.txt</b> is the alias mapping table from
@@ -532,9 +428,9 @@
information.</li>
<li><b>misc/</b> The misc directory contains other data files which
- did not fit into the above categories. Currently it only contains
- time zone information, and a name preperation file for <a href=
- "http://www.ietf.org/rfc/rfc3490.txt">IDNA</a>.</li>
+ did not fit into the above categories, including time zone
+ information, region-specific data, and other data derived from CLDR
+ supplemental data.</li>
<li><b>out/</b> This directory contains the assembled memory mapped
files.</li>
@@ -690,7 +586,7 @@
we recommend hardcoding ICU's default charset to UTF-8.
This means that some implementation code becomes simpler and faster,
and statically linked ICU libraries become smaller.
- (See the <a href="http://icu-project.org/apiref/icu4c/utypes_8h.html#0a33e1edf3cd23d9e9c972b63c9f7943">U_CHARSET_IS_UTF8</a>
+ (See the <a href="http://icu-project.org/apiref/icu4c/platform_8h.html#a0a33e1edf3cd23d9e9c972b63c9f7943">U_CHARSET_IS_UTF8</a>
API documentation for more details.)<br />
You can <code>-DU_CHARSET_IS_UTF8=1</code> or
modify unicode/utypes.h (in ICU 4.8 and below)
@@ -737,6 +633,14 @@
(via -D or uconfig.h, as above)
and include those header files explicitly that you actually need.<br />
Note: The ICU test suites cannot be compiled with this setting.</li>
+ <li><b>utf_old.h:</b>
+ All of utf_old.h is deprecated or obsolete.<br />
+ Beginning with ICU 60,
+ you should define <code>U_HIDE_OBSOLETE_UTF_OLD_H</code> to 1
+ (via -D or uconfig.h, as above).
+ Use of any of these macros should be replaced as noted
+ in the comments for the obsolete macro.<br />
+ Note: The ICU test suites <i>can</i> be compiled with this setting.</li>
<li><b>.dat file:</b> By default, the ICU data is built into
a shared library (DLL). This is convenient because it requires no
install-time or runtime configuration,
@@ -779,7 +683,7 @@
source file tree clean and have build output files written to
a different location. This is called an "out-of-source build".
Simply invoke the configure script from the target location:
-<pre>~/icu$ svn export http://source.icu-project.org/repos/icu/icu/trunk
+<pre>~/icu$ svn export http://source.icu-project.org/repos/icu/trunk/icu4c
~/icu$ mkdir trunk-dev
~/icu$ cd trunk-dev
~/icu/trunk-dev$ ../trunk/source/runConfigureICU Linux
@@ -851,7 +755,9 @@
<ul>
<li>Microsoft Windows</li>
- <li>Microsoft Visual C++ (see the ICU download page for the currently compatible version)</li>
+ <li>Microsoft Visual C++ (part of <a href="https://www.visualstudio.com/">Visual Studio</a>) (see the ICU download page for the currently compatible version)</li>
+
+ <li><i><b>Optional:</b></i> A version of the <a href="https://developer.microsoft.com/windows/downloads">Windows 10 SDK</a> (if you want to build the UWP projects)</li>
</ul>
<p class="note"><a href="#HowToBuildCygwin">Cygwin</a> is required if using a version of MSVC other than the one
compatible with the supplied project files or if other compilers are used to build ICU. (e.g. GCC)</p>
@@ -874,6 +780,11 @@
"#HowToBuildWindowsCommandLine">command line note below</a> if you want to
build from the command line instead.</li>
+ <li>You may need to re-target the UWP projects to the version of the SDK that you have installed. In Visual Studio you can
+ right-click on the UWP projects and select the option 'Retarget SDK Version'. Note: You do not need to have a copy of
+ the Windows 10 SDK installed in order to build the non-UWP projects in Visual Studio. If the SDK is not installed then the
+ UWP projects will simply not be loaded.</li>
+
<li>Set the active platform to "Win32" or "x64" (See <a href="#HowToBuildWindowsPlatform">Windows platform note</a> below)
and configuration to "Debug" or "Release" (See <a href="#HowToBuildWindowsConfig">Windows configuration note</a> below).</li>
@@ -932,9 +843,11 @@
"HowToBuildWindowsCommandLine"><strong>Using MSDEV At The Command Line
Note:</strong></a> You can build ICU from the command line. Assuming that you
have properly installed Microsoft Visual C++ to support command line
- execution, you can run the following command, 'devenv.com
- <i><ICU></i>\source\allinone\allinone.sln /build "Win32|Release"'. You can also
- use Cygwin with this compiler to build ICU, and you can refer to the <a href=
+ execution, you can run the following command to build the 32-bit Release version:
+ <code>'devenv.com <i><ICU></i>\source\allinone\allinone.sln /build "Release|Win32"'</code>.
+ Or to build the 64-bit Release version from the command line:
+ <code>'devenv.com <i><ICU></i>\source\allinone\allinone.sln /build "Release|x64"'</code>.
+ <br />You can also use Cygwin with this compiler to build ICU, and you can refer to the <a href=
"#HowToBuildCygwin">How To Build And Install On Windows with Cygwin</a>
section for more details.</p>
@@ -981,7 +894,7 @@
<ul>
<li>Microsoft Windows</li>
- <li>Microsoft Visual C++ (when gcc isn't used).</li>
+ <li>Microsoft Visual C++ (from Visual Studio 2015 or newer, when gcc isn't used).</li>
<li>
Cygwin with the following installed:
@@ -1016,11 +929,11 @@
Visual C++ compiler will not work with a bash command prompt.</li>
<li>If the computer isn't set up to use Visual C++ from the command line,
- you need to run vcvars32.bat.<br />For example:<br />"<tt>C:\Program Files\Microsoft
- Visual Studio 8\VC\bin\vcvars32.bat</tt>" can be used for 32-bit builds
- <strong>or</strong> <br />"<tt>C:\Program Files (x86)\Microsoft Visual Studio
- 8\VC\bin\amd64\vcvarsamd64.bat</tt>" can be used for 64-bit builds on
- Windows x64.</li>
+ you need to run vcvars32.bat.<br />For example:<br />
+ "<tt>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvars32.bat</tt>"
+ can be used for 32-bit builds <strong>or</strong> <br />
+ "<tt>C:\Program Files (x86)\Microsoft Visual Studio 14\VC\bin\x86_amd64\vcvarsx86_amd64.bat</tt>"
+ can be used for 64-bit builds on Windows x64.</li>
<li>Unzip the icu-XXXX.zip file into any convenient location. Using command
line zip, type "unzip -a icu-XXXX.zip -d drive:\directory", or just use
@@ -1229,9 +1142,9 @@
configure option.</li>
<li>The latest versions of z/OS use <a
- href="http://www.ibm.com/support/docview.wss?uid=swg2120240">XPLINK
+ href="https://www.ibm.com/support/knowledgecenter/SSLTBW_2.2.0/com.ibm.zos.v2r2.cbcux01/oebind6.htm">XPLINK
version (C128) of the C++ standard library</a> by default. You may see <a
- href="http://www.ibm.com/support/docview.wss?uid=swg21376279">an
+ href="https://www.ibm.com/support/knowledgecenter/SSLTBW_2.2.0/com.ibm.zos.v2r2.cbcux01/oebind5.htm">an
error</a> when running with XPLINK disabled. To avoid this error,
set the following environment variable or similar:
@@ -1405,7 +1318,7 @@
<li>Test ICU. <pre><samp>gmake check</samp></pre>
(The <tt> QIBM_MULTI_THREADED=Y</tt> flag will be automatically applied to intltest -
you can look at the <a href=
- "http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=/apis/concept4.htm">
+ "https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/rzahw/rzahwceeco.htm">
iSeries Information Center</a> for more details regarding the running of multiple threads
on IBM i.)</li>
</ol>
@@ -1657,7 +1570,7 @@
<p>In order to avoid synchronization and threading issues, developers are
<strong>suggested</strong> to strictly follow the compiling and linking
guidelines for multithreaded applications, specified in the following
- document from Sun Microsystems. Most notably, pay strict attention to the
+ SUn Solaris document available from Oracle. Most notably, pay strict attention to the
following statements from Sun:</p>
<blockquote>
@@ -1671,11 +1584,16 @@
<p>Failure to do this may cause spurious lock conflicts, recursive mutex
failure, and deadlock.</p>
- <p>Source: "<i>Solaris Multithreaded Programming Guide, Compiling and
- Debugging</i>", Sun Microsystems, Inc., Apr 2004<br />
+ <p>Source: "<i>Multithreaded Programming Guide, Compiling and
+ Debugging</i>", Sun Microsystems, 2002 <br />
<a href=
- "http://docs.sun.com/app/docs/doc/816-5137/6mba5vpke?a=view">http://docs.sun.com/app/docs/doc/816-5137/6mba5vpke?a=view</a></p>
+ "https://docs.oracle.com/cd/E19683-01/806-6867/compile-74765/index.html">https://docs.oracle.com/cd/E19683-01/806-6867/compile-74765/index.html</a></p>
+ <p>Note, a version of that chapter from a 2008 document update covering both Solaris 9
+ and Solaris 10 is available here:<br />
+ <a href=
+ "http://docs.oracle.com/cd/E19253-01/816-5137/compile-94179/index.html">http://docs.oracle.com/cd/E19253-01/816-5137/compile-94179/index.html</a></p>
+
<h3><a name="ImportantNotesWindows" href="#ImportantNotesWindows" id=
"ImportantNotesWindows">Windows Platform</a></h3>
Modified: trunk/Build/source/libs/icu/icu-src/source/Doxyfile.in
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/Doxyfile.in 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/Doxyfile.in 2018-01-12 18:35:28 UTC (rev 46290)
@@ -194,7 +194,7 @@
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
-PREDEFINED = U_EXPORT2= U_STABLE= U_DRAFT= U_INTERNAL= U_SYSTEM= U_DEPRECATED= U_OBSOLETE= U_CALLCONV= U_CDECL_BEGIN= U_CDECL_END= U_NO_THROW=\ "U_NAMESPACE_BEGIN=namespace icu{" "U_NAMESPACE_END=}" U_HAVE_STD_STRING=1 U_SHOW_CPLUSPLUS_API=1 U_DEFINE_LOCAL_OPEN_POINTER()= U_IN_DOXYGEN=1 U_OVERRIDE= U_FINAL= UCONFIG_ENABLE_PLUGINS=1
+PREDEFINED = U_EXPORT2= U_STABLE= U_DRAFT= U_INTERNAL= U_SYSTEM= U_DEPRECATED= U_OBSOLETE= U_CALLCONV_FPTR= U_CALLCONV= U_CDECL_BEGIN= U_CDECL_END= U_NO_THROW=\ "U_NAMESPACE_BEGIN=namespace icu{" "U_NAMESPACE_END=}" U_SHOW_CPLUSPLUS_API=1 U_DEFINE_LOCAL_OPEN_POINTER()= U_IN_DOXYGEN=1 U_OVERRIDE= U_FINAL=final UCONFIG_ENABLE_PLUGINS=1 U_CHAR16_IS_TYPEDEF=0 U_CPLUSPLUS_VERSION=11 U_WCHAR_IS_UTF16 U_NOEXCEPT=
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
Modified: trunk/Build/source/libs/icu/icu-src/source/Makefile.in
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/Makefile.in 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/Makefile.in 2018-01-12 18:35:28 UTC (rev 46290)
@@ -34,9 +34,11 @@
@LAYOUTEX_TRUE at LAYOUTEX = layoutex
@ICUIO_TRUE at ICUIO = io
@EXTRAS_TRUE at EXTRA = extra
- at TESTS_TRUE@TEST = test
+# need tools for tests
+ at TOOLS_TRUE@@TESTS_TRUE at TEST = test
@SAMPLES_TRUE at SAMPLE = samples
@TOOLS_TRUE at TOOLS = tools
+ at TOOLS_TRUE@DATASUBDIR = data
## pkgconfig setup. Always have uc and i18n. Others are optional.
ALL_PKGCONFIG_SUFFIX=uc i18n
@@ -58,7 +60,7 @@
LOCAL_BUILT_FILES = icudefs.mk config/icucross.mk config/icucross.inc
DOCDIRS = common i18n
-SUBDIRS = stubdata common i18n $(LAYOUTEX) $(ICUIO) $(TOOLS) data $(EXTRA) $(SAMPLE) $(TEST)
+SUBDIRS = stubdata common i18n $(LAYOUTEX) $(ICUIO) $(TOOLS) $(DATASUBDIR) $(EXTRA) $(SAMPLE) $(TEST)
SECTION = 1
@@ -85,7 +87,7 @@
install: install-recursive install-local
clean: clean-recursive-with-twist clean-local
distclean : distclean-recursive distclean-local
-dist: dist-recursive dist-local
+dist: dist-recursive
check: all check-recursive
check-recursive: all
xcheck: all xcheck-recursive
@@ -140,6 +142,10 @@
## Recursive targets
all-recursive install-recursive clean-recursive distclean-recursive dist-recursive check-recursive check-exhaustive-recursive: $(LIBDIR) $(BINDIR)
+ifneq ($(NEED_ESCAPING),)
+ @echo "building tools/escapesrc (Needed for this platform with NEED_ESCAPING)"
+ @(cd tools/escapesrc && $(MAKE) RECURSIVE=YES $$local_target) || exit
+endif
@dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(LOCAL_SUBDIRS)'; for subdir in $$list; do \
@@ -323,9 +329,10 @@
-$(RMV) $@
$(INSTALL_SCRIPT) $(top_srcdir)/config/icu-config-top $@
chmod u+w $@
+ @echo "# Following from icu/icu4c/source/config/Makefile.inc" >> $@
+ LC_ALL=C $(SED) -f $(top_srcdir)/config/make2sh.sed < $(top_builddir)/config/Makefile.inc | grep -v '#M#' | uniq >> $@
@echo "# Following from @platform_make_fragment@" >> $@
- LC_ALL=C sed -f $(top_srcdir)/config/make2sh.sed < $(top_builddir)/config/Makefile.inc | grep -v '#M#' | uniq >> $@
- LC_ALL=C sed -f $(top_srcdir)/config/make2sh.sed < @platform_make_fragment@ | grep -v '#M#' | uniq >> $@
+ LC_ALL=C $(SED) -f $(top_srcdir)/config/make2sh.sed < @platform_make_fragment@ | grep -v '#M#' | uniq >> $@
cat $(top_srcdir)/config/icu-config-bottom >> $@
chmod u-w $@
Modified: trunk/Build/source/libs/icu/icu-src/source/allinone/allinone.sln
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/allinone/allinone.sln 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/allinone/allinone.sln 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,5 +1,7 @@
-Microsoft Visual Studio Solution File, Format Version 11.00
-# Visual Studio 2010
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cal", "..\samples\cal\cal.vcxproj", "{F7659D77-09CF-4FE9-ACEE-927287AA9509}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cintltst", "..\test\cintltst\cintltst.vcxproj", "{3D1246AE-1B32-479B-BECA-AEFA97BE2321}"
@@ -61,268 +63,354 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testplug", "..\tools\icuinfo\testplug.vcxproj", "{659D0C08-D4ED-4BF3-B02B-2D8D4B5A7A7A}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "makedata_uwp", "..\data\makedata_uwp.vcxproj", "{B1D53358-37BD-48BC-B27C-68BAF1E78508}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "i18n_uwp", "..\i18n\i18n_uwp.vcxproj", "{6786C051-383B-47E0-9E82-B8B994E06A25}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common_uwp", "..\common\common_uwp.vcxproj", "{C10CF34B-3F79-430E-AD38-5A32DC0589C2}"
+EndProject
Global
- GlobalSection(SubversionScc) = preSolution
- Svn-Managed = True
- Manager = AnkhSVN - Subversion Support for Visual Studio
- EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|ARM = Debug|ARM
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
+ Release|ARM = Release|ARM
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {F7659D77-09CF-4FE9-ACEE-927287AA9509}.Debug|ARM.ActiveCfg = Debug|Win32
{F7659D77-09CF-4FE9-ACEE-927287AA9509}.Debug|Win32.ActiveCfg = Debug|Win32
{F7659D77-09CF-4FE9-ACEE-927287AA9509}.Debug|Win32.Build.0 = Debug|Win32
{F7659D77-09CF-4FE9-ACEE-927287AA9509}.Debug|x64.ActiveCfg = Debug|x64
{F7659D77-09CF-4FE9-ACEE-927287AA9509}.Debug|x64.Build.0 = Debug|x64
+ {F7659D77-09CF-4FE9-ACEE-927287AA9509}.Release|ARM.ActiveCfg = Release|Win32
{F7659D77-09CF-4FE9-ACEE-927287AA9509}.Release|Win32.ActiveCfg = Release|Win32
{F7659D77-09CF-4FE9-ACEE-927287AA9509}.Release|Win32.Build.0 = Release|Win32
{F7659D77-09CF-4FE9-ACEE-927287AA9509}.Release|x64.ActiveCfg = Release|x64
{F7659D77-09CF-4FE9-ACEE-927287AA9509}.Release|x64.Build.0 = Release|x64
+ {3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Debug|ARM.ActiveCfg = Debug|Win32
{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Debug|Win32.ActiveCfg = Debug|Win32
{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Debug|Win32.Build.0 = Debug|Win32
{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Debug|x64.ActiveCfg = Debug|x64
{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Debug|x64.Build.0 = Debug|x64
+ {3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Release|ARM.ActiveCfg = Release|Win32
{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Release|Win32.ActiveCfg = Release|Win32
{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Release|Win32.Build.0 = Release|Win32
{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Release|x64.ActiveCfg = Release|x64
{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Release|x64.Build.0 = Release|x64
+ {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}.Debug|ARM.ActiveCfg = Debug|Win32
{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}.Debug|Win32.ActiveCfg = Debug|Win32
{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}.Debug|Win32.Build.0 = Debug|Win32
{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}.Debug|x64.ActiveCfg = Debug|x64
{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}.Debug|x64.Build.0 = Debug|x64
+ {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}.Release|ARM.ActiveCfg = Release|Win32
{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}.Release|Win32.ActiveCfg = Release|Win32
{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}.Release|Win32.Build.0 = Release|Win32
{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}.Release|x64.ActiveCfg = Release|x64
{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}.Release|x64.Build.0 = Release|x64
+ {ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Debug|ARM.ActiveCfg = Debug|Win32
{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Debug|Win32.ActiveCfg = Debug|Win32
{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Debug|Win32.Build.0 = Debug|Win32
{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Debug|x64.ActiveCfg = Debug|x64
{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Debug|x64.Build.0 = Debug|x64
+ {ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Release|ARM.ActiveCfg = Release|Win32
{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Release|Win32.ActiveCfg = Release|Win32
{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Release|Win32.Build.0 = Release|Win32
{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Release|x64.ActiveCfg = Release|x64
{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Release|x64.Build.0 = Release|x64
+ {38B5751A-C6F9-4409-950C-F4F9DA17275F}.Debug|ARM.ActiveCfg = Debug|Win32
{38B5751A-C6F9-4409-950C-F4F9DA17275F}.Debug|Win32.ActiveCfg = Debug|Win32
{38B5751A-C6F9-4409-950C-F4F9DA17275F}.Debug|Win32.Build.0 = Debug|Win32
{38B5751A-C6F9-4409-950C-F4F9DA17275F}.Debug|x64.ActiveCfg = Debug|x64
{38B5751A-C6F9-4409-950C-F4F9DA17275F}.Debug|x64.Build.0 = Debug|x64
+ {38B5751A-C6F9-4409-950C-F4F9DA17275F}.Release|ARM.ActiveCfg = Release|Win32
{38B5751A-C6F9-4409-950C-F4F9DA17275F}.Release|Win32.ActiveCfg = Release|Win32
{38B5751A-C6F9-4409-950C-F4F9DA17275F}.Release|Win32.Build.0 = Release|Win32
{38B5751A-C6F9-4409-950C-F4F9DA17275F}.Release|x64.ActiveCfg = Release|x64
{38B5751A-C6F9-4409-950C-F4F9DA17275F}.Release|x64.Build.0 = Release|x64
+ {D3065ADB-8820-4CC7-9B6C-9510833961A3}.Debug|ARM.ActiveCfg = Debug|Win32
{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Debug|Win32.ActiveCfg = Debug|Win32
{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Debug|Win32.Build.0 = Debug|Win32
{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Debug|x64.ActiveCfg = Debug|x64
{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Debug|x64.Build.0 = Debug|x64
+ {D3065ADB-8820-4CC7-9B6C-9510833961A3}.Release|ARM.ActiveCfg = Release|Win32
{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Release|Win32.ActiveCfg = Release|Win32
{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Release|Win32.Build.0 = Release|Win32
{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Release|x64.ActiveCfg = Release|x64
{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Release|x64.Build.0 = Release|x64
+ {C2BE5000-7501-4E87-9724-B8D82494FAE6}.Debug|ARM.ActiveCfg = Debug|Win32
{C2BE5000-7501-4E87-9724-B8D82494FAE6}.Debug|Win32.ActiveCfg = Debug|Win32
{C2BE5000-7501-4E87-9724-B8D82494FAE6}.Debug|Win32.Build.0 = Debug|Win32
{C2BE5000-7501-4E87-9724-B8D82494FAE6}.Debug|x64.ActiveCfg = Debug|x64
{C2BE5000-7501-4E87-9724-B8D82494FAE6}.Debug|x64.Build.0 = Debug|x64
+ {C2BE5000-7501-4E87-9724-B8D82494FAE6}.Release|ARM.ActiveCfg = Release|Win32
{C2BE5000-7501-4E87-9724-B8D82494FAE6}.Release|Win32.ActiveCfg = Release|Win32
{C2BE5000-7501-4E87-9724-B8D82494FAE6}.Release|Win32.Build.0 = Release|Win32
{C2BE5000-7501-4E87-9724-B8D82494FAE6}.Release|x64.ActiveCfg = Release|x64
{C2BE5000-7501-4E87-9724-B8D82494FAE6}.Release|x64.Build.0 = Release|x64
+ {FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.Debug|ARM.ActiveCfg = Debug|Win32
{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.Debug|Win32.ActiveCfg = Debug|Win32
{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.Debug|Win32.Build.0 = Debug|Win32
{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.Debug|x64.ActiveCfg = Debug|x64
{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.Debug|x64.Build.0 = Debug|x64
+ {FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.Release|ARM.ActiveCfg = Release|Win32
{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.Release|Win32.ActiveCfg = Release|Win32
{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.Release|Win32.Build.0 = Release|Win32
{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.Release|x64.ActiveCfg = Release|x64
{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.Release|x64.Build.0 = Release|x64
+ {A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.Debug|ARM.ActiveCfg = Debug|Win32
{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.Debug|Win32.ActiveCfg = Debug|Win32
{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.Debug|Win32.Build.0 = Debug|Win32
{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.Debug|x64.ActiveCfg = Debug|x64
{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.Debug|x64.Build.0 = Debug|x64
+ {A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.Release|ARM.ActiveCfg = Release|Win32
{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.Release|Win32.ActiveCfg = Release|Win32
{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.Release|Win32.Build.0 = Release|Win32
{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.Release|x64.ActiveCfg = Release|x64
{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.Release|x64.Build.0 = Release|x64
+ {8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.Debug|ARM.ActiveCfg = Debug|Win32
{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.Debug|Win32.ActiveCfg = Debug|Win32
{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.Debug|Win32.Build.0 = Debug|Win32
{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.Debug|x64.ActiveCfg = Debug|x64
{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.Debug|x64.Build.0 = Debug|x64
+ {8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.Release|ARM.ActiveCfg = Release|Win32
{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.Release|Win32.ActiveCfg = Release|Win32
{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.Release|Win32.Build.0 = Release|Win32
{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.Release|x64.ActiveCfg = Release|x64
{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.Release|x64.Build.0 = Release|x64
+ {97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.Debug|ARM.ActiveCfg = Debug|Win32
{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.Debug|Win32.ActiveCfg = Debug|Win32
{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.Debug|Win32.Build.0 = Debug|Win32
{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.Debug|x64.ActiveCfg = Debug|x64
{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.Debug|x64.Build.0 = Debug|x64
+ {97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.Release|ARM.ActiveCfg = Release|Win32
{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.Release|Win32.ActiveCfg = Release|Win32
{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.Release|Win32.Build.0 = Release|Win32
{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.Release|x64.ActiveCfg = Release|x64
{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.Release|x64.Build.0 = Release|x64
+ {77C78066-746F-4EA6-B3FE-B8C8A4A97891}.Debug|ARM.ActiveCfg = Debug|Win32
{77C78066-746F-4EA6-B3FE-B8C8A4A97891}.Debug|Win32.ActiveCfg = Debug|Win32
{77C78066-746F-4EA6-B3FE-B8C8A4A97891}.Debug|Win32.Build.0 = Debug|Win32
{77C78066-746F-4EA6-B3FE-B8C8A4A97891}.Debug|x64.ActiveCfg = Debug|x64
{77C78066-746F-4EA6-B3FE-B8C8A4A97891}.Debug|x64.Build.0 = Debug|x64
+ {77C78066-746F-4EA6-B3FE-B8C8A4A97891}.Release|ARM.ActiveCfg = Release|Win32
{77C78066-746F-4EA6-B3FE-B8C8A4A97891}.Release|Win32.ActiveCfg = Release|Win32
{77C78066-746F-4EA6-B3FE-B8C8A4A97891}.Release|Win32.Build.0 = Release|Win32
{77C78066-746F-4EA6-B3FE-B8C8A4A97891}.Release|x64.ActiveCfg = Release|x64
{77C78066-746F-4EA6-B3FE-B8C8A4A97891}.Release|x64.Build.0 = Release|x64
+ {0178B127-6269-407D-B112-93877BB62776}.Debug|ARM.ActiveCfg = Debug|Win32
{0178B127-6269-407D-B112-93877BB62776}.Debug|Win32.ActiveCfg = Debug|Win32
{0178B127-6269-407D-B112-93877BB62776}.Debug|Win32.Build.0 = Debug|Win32
{0178B127-6269-407D-B112-93877BB62776}.Debug|x64.ActiveCfg = Debug|x64
{0178B127-6269-407D-B112-93877BB62776}.Debug|x64.Build.0 = Debug|x64
+ {0178B127-6269-407D-B112-93877BB62776}.Release|ARM.ActiveCfg = Release|Win32
{0178B127-6269-407D-B112-93877BB62776}.Release|Win32.ActiveCfg = Release|Win32
{0178B127-6269-407D-B112-93877BB62776}.Release|Win32.Build.0 = Release|Win32
{0178B127-6269-407D-B112-93877BB62776}.Release|x64.ActiveCfg = Release|x64
{0178B127-6269-407D-B112-93877BB62776}.Release|x64.Build.0 = Release|x64
+ {73632960-B3A6-464D-83A3-4B43365F19B8}.Debug|ARM.ActiveCfg = Debug|Win32
{73632960-B3A6-464D-83A3-4B43365F19B8}.Debug|Win32.ActiveCfg = Debug|Win32
{73632960-B3A6-464D-83A3-4B43365F19B8}.Debug|Win32.Build.0 = Debug|Win32
{73632960-B3A6-464D-83A3-4B43365F19B8}.Debug|x64.ActiveCfg = Debug|x64
{73632960-B3A6-464D-83A3-4B43365F19B8}.Debug|x64.Build.0 = Debug|x64
+ {73632960-B3A6-464D-83A3-4B43365F19B8}.Release|ARM.ActiveCfg = Release|Win32
{73632960-B3A6-464D-83A3-4B43365F19B8}.Release|Win32.ActiveCfg = Release|Win32
{73632960-B3A6-464D-83A3-4B43365F19B8}.Release|Win32.Build.0 = Release|Win32
{73632960-B3A6-464D-83A3-4B43365F19B8}.Release|x64.ActiveCfg = Release|x64
{73632960-B3A6-464D-83A3-4B43365F19B8}.Release|x64.Build.0 = Release|x64
- {C920062A-0647-4553-A3B2-37C58065664B}.Debug|Win32.ActiveCfg = Debug|Win32
- {C920062A-0647-4553-A3B2-37C58065664B}.Debug|Win32.Build.0 = Debug|Win32
- {C920062A-0647-4553-A3B2-37C58065664B}.Debug|x64.ActiveCfg = Debug|x64
- {C920062A-0647-4553-A3B2-37C58065664B}.Debug|x64.Build.0 = Debug|x64
- {C920062A-0647-4553-A3B2-37C58065664B}.Release|Win32.ActiveCfg = Release|Win32
- {C920062A-0647-4553-A3B2-37C58065664B}.Release|Win32.Build.0 = Release|Win32
- {C920062A-0647-4553-A3B2-37C58065664B}.Release|x64.ActiveCfg = Release|x64
- {C920062A-0647-4553-A3B2-37C58065664B}.Release|x64.Build.0 = Release|x64
- {37FC2C7F-1904-4811-8955-2F478830EAD1}.Debug|Win32.ActiveCfg = Debug|Win32
- {37FC2C7F-1904-4811-8955-2F478830EAD1}.Debug|Win32.Build.0 = Debug|Win32
- {37FC2C7F-1904-4811-8955-2F478830EAD1}.Debug|x64.ActiveCfg = Debug|x64
- {37FC2C7F-1904-4811-8955-2F478830EAD1}.Debug|x64.Build.0 = Debug|x64
- {37FC2C7F-1904-4811-8955-2F478830EAD1}.Release|Win32.ActiveCfg = Release|Win32
- {37FC2C7F-1904-4811-8955-2F478830EAD1}.Release|Win32.Build.0 = Release|Win32
- {37FC2C7F-1904-4811-8955-2F478830EAD1}.Release|x64.ActiveCfg = Release|x64
- {37FC2C7F-1904-4811-8955-2F478830EAD1}.Release|x64.Build.0 = Release|x64
+ {F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.Debug|ARM.ActiveCfg = Debug|Win32
{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.Debug|Win32.ActiveCfg = Debug|Win32
{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.Debug|Win32.Build.0 = Debug|Win32
{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.Debug|x64.ActiveCfg = Debug|x64
{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.Debug|x64.Build.0 = Debug|x64
+ {F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.Release|ARM.ActiveCfg = Release|Win32
{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.Release|Win32.ActiveCfg = Release|Win32
{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.Release|Win32.Build.0 = Release|Win32
{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.Release|x64.ActiveCfg = Release|x64
{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.Release|x64.Build.0 = Release|x64
+ {D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.Debug|ARM.ActiveCfg = Debug|Win32
{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.Debug|Win32.ActiveCfg = Debug|Win32
{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.Debug|Win32.Build.0 = Debug|Win32
{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.Debug|x64.ActiveCfg = Debug|x64
{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.Debug|x64.Build.0 = Debug|x64
+ {D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.Release|ARM.ActiveCfg = Release|Win32
{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.Release|Win32.ActiveCfg = Release|Win32
{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.Release|Win32.Build.0 = Release|Win32
{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.Release|x64.ActiveCfg = Release|x64
{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.Release|x64.Build.0 = Release|x64
+ {4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.Debug|ARM.ActiveCfg = Debug|Win32
{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.Debug|Win32.ActiveCfg = Debug|Win32
{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.Debug|Win32.Build.0 = Debug|Win32
{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.Debug|x64.ActiveCfg = Debug|x64
{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.Debug|x64.Build.0 = Debug|x64
+ {4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.Release|ARM.ActiveCfg = Release|Win32
{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.Release|Win32.ActiveCfg = Release|Win32
{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.Release|Win32.Build.0 = Release|Win32
{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.Release|x64.ActiveCfg = Release|x64
{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.Release|x64.Build.0 = Release|x64
+ {203EC78A-0531-43F0-A636-285439BDE025}.Debug|ARM.ActiveCfg = Debug|Win32
{203EC78A-0531-43F0-A636-285439BDE025}.Debug|Win32.ActiveCfg = Debug|Win32
{203EC78A-0531-43F0-A636-285439BDE025}.Debug|Win32.Build.0 = Debug|Win32
{203EC78A-0531-43F0-A636-285439BDE025}.Debug|x64.ActiveCfg = Debug|x64
{203EC78A-0531-43F0-A636-285439BDE025}.Debug|x64.Build.0 = Debug|x64
+ {203EC78A-0531-43F0-A636-285439BDE025}.Release|ARM.ActiveCfg = Release|Win32
{203EC78A-0531-43F0-A636-285439BDE025}.Release|Win32.ActiveCfg = Release|Win32
{203EC78A-0531-43F0-A636-285439BDE025}.Release|Win32.Build.0 = Release|Win32
{203EC78A-0531-43F0-A636-285439BDE025}.Release|x64.ActiveCfg = Release|x64
{203EC78A-0531-43F0-A636-285439BDE025}.Release|x64.Build.0 = Release|x64
+ {6B231032-3CB5-4EED-9210-810D666A23A0}.Debug|ARM.ActiveCfg = Debug|Win32
{6B231032-3CB5-4EED-9210-810D666A23A0}.Debug|Win32.ActiveCfg = Debug|Win32
{6B231032-3CB5-4EED-9210-810D666A23A0}.Debug|Win32.Build.0 = Debug|Win32
{6B231032-3CB5-4EED-9210-810D666A23A0}.Debug|x64.ActiveCfg = Debug|x64
{6B231032-3CB5-4EED-9210-810D666A23A0}.Debug|x64.Build.0 = Debug|x64
+ {6B231032-3CB5-4EED-9210-810D666A23A0}.Release|ARM.ActiveCfg = Release|Win32
{6B231032-3CB5-4EED-9210-810D666A23A0}.Release|Win32.ActiveCfg = Release|Win32
{6B231032-3CB5-4EED-9210-810D666A23A0}.Release|Win32.Build.0 = Release|Win32
{6B231032-3CB5-4EED-9210-810D666A23A0}.Release|x64.ActiveCfg = Release|x64
{6B231032-3CB5-4EED-9210-810D666A23A0}.Release|x64.Build.0 = Release|x64
+ {DBA4088D-F6F9-4F8F-8820-082A4765C16C}.Debug|ARM.ActiveCfg = Debug|Win32
{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.Debug|Win32.ActiveCfg = Debug|Win32
{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.Debug|Win32.Build.0 = Debug|Win32
{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.Debug|x64.ActiveCfg = Debug|x64
{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.Debug|x64.Build.0 = Debug|x64
+ {DBA4088D-F6F9-4F8F-8820-082A4765C16C}.Release|ARM.ActiveCfg = Release|Win32
{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.Release|Win32.ActiveCfg = Release|Win32
{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.Release|Win32.Build.0 = Release|Win32
{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.Release|x64.ActiveCfg = Release|x64
{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.Release|x64.Build.0 = Release|x64
+ {C2B04507-2521-4801-BF0D-5FD79D6D518C}.Debug|ARM.ActiveCfg = Debug|Win32
{C2B04507-2521-4801-BF0D-5FD79D6D518C}.Debug|Win32.ActiveCfg = Debug|Win32
{C2B04507-2521-4801-BF0D-5FD79D6D518C}.Debug|Win32.Build.0 = Debug|Win32
{C2B04507-2521-4801-BF0D-5FD79D6D518C}.Debug|x64.ActiveCfg = Debug|x64
{C2B04507-2521-4801-BF0D-5FD79D6D518C}.Debug|x64.Build.0 = Debug|x64
+ {C2B04507-2521-4801-BF0D-5FD79D6D518C}.Release|ARM.ActiveCfg = Release|Win32
{C2B04507-2521-4801-BF0D-5FD79D6D518C}.Release|Win32.ActiveCfg = Release|Win32
{C2B04507-2521-4801-BF0D-5FD79D6D518C}.Release|Win32.Build.0 = Release|Win32
{C2B04507-2521-4801-BF0D-5FD79D6D518C}.Release|x64.ActiveCfg = Release|x64
{C2B04507-2521-4801-BF0D-5FD79D6D518C}.Release|x64.Build.0 = Release|x64
+ {631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Debug|ARM.ActiveCfg = Debug|Win32
{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Debug|Win32.ActiveCfg = Debug|Win32
{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Debug|Win32.Build.0 = Debug|Win32
{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Debug|x64.ActiveCfg = Debug|x64
{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Debug|x64.Build.0 = Debug|x64
+ {631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Release|ARM.ActiveCfg = Release|Win32
{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Release|Win32.ActiveCfg = Release|Win32
{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Release|Win32.Build.0 = Release|Win32
{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Release|x64.ActiveCfg = Release|x64
{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Release|x64.Build.0 = Release|x64
+ {E4993E82-D68A-46CA-BAE0-9D35E172E46F}.Debug|ARM.ActiveCfg = Debug|Win32
{E4993E82-D68A-46CA-BAE0-9D35E172E46F}.Debug|Win32.ActiveCfg = Debug|Win32
{E4993E82-D68A-46CA-BAE0-9D35E172E46F}.Debug|Win32.Build.0 = Debug|Win32
{E4993E82-D68A-46CA-BAE0-9D35E172E46F}.Debug|x64.ActiveCfg = Debug|x64
{E4993E82-D68A-46CA-BAE0-9D35E172E46F}.Debug|x64.Build.0 = Debug|x64
+ {E4993E82-D68A-46CA-BAE0-9D35E172E46F}.Release|ARM.ActiveCfg = Release|Win32
{E4993E82-D68A-46CA-BAE0-9D35E172E46F}.Release|Win32.ActiveCfg = Release|Win32
{E4993E82-D68A-46CA-BAE0-9D35E172E46F}.Release|Win32.Build.0 = Release|Win32
{E4993E82-D68A-46CA-BAE0-9D35E172E46F}.Release|x64.ActiveCfg = Release|x64
{E4993E82-D68A-46CA-BAE0-9D35E172E46F}.Release|x64.Build.0 = Release|x64
+ {62D4B15D-7A90-4ECB-BA19-5E021D6A21BC}.Debug|ARM.ActiveCfg = Debug|Win32
{62D4B15D-7A90-4ECB-BA19-5E021D6A21BC}.Debug|Win32.ActiveCfg = Debug|Win32
{62D4B15D-7A90-4ECB-BA19-5E021D6A21BC}.Debug|Win32.Build.0 = Debug|Win32
{62D4B15D-7A90-4ECB-BA19-5E021D6A21BC}.Debug|x64.ActiveCfg = Debug|x64
{62D4B15D-7A90-4ECB-BA19-5E021D6A21BC}.Debug|x64.Build.0 = Debug|x64
+ {62D4B15D-7A90-4ECB-BA19-5E021D6A21BC}.Release|ARM.ActiveCfg = Release|Win32
{62D4B15D-7A90-4ECB-BA19-5E021D6A21BC}.Release|Win32.ActiveCfg = Release|Win32
{62D4B15D-7A90-4ECB-BA19-5E021D6A21BC}.Release|Win32.Build.0 = Release|Win32
{62D4B15D-7A90-4ECB-BA19-5E021D6A21BC}.Release|x64.ActiveCfg = Release|x64
{62D4B15D-7A90-4ECB-BA19-5E021D6A21BC}.Release|x64.Build.0 = Release|x64
+ {9D4211F7-2C77-439C-82F0-30A4E43BA569}.Debug|ARM.ActiveCfg = Debug|Win32
{9D4211F7-2C77-439C-82F0-30A4E43BA569}.Debug|Win32.ActiveCfg = Debug|Win32
{9D4211F7-2C77-439C-82F0-30A4E43BA569}.Debug|Win32.Build.0 = Debug|Win32
{9D4211F7-2C77-439C-82F0-30A4E43BA569}.Debug|x64.ActiveCfg = Debug|x64
{9D4211F7-2C77-439C-82F0-30A4E43BA569}.Debug|x64.Build.0 = Debug|x64
+ {9D4211F7-2C77-439C-82F0-30A4E43BA569}.Release|ARM.ActiveCfg = Release|Win32
{9D4211F7-2C77-439C-82F0-30A4E43BA569}.Release|Win32.ActiveCfg = Release|Win32
{9D4211F7-2C77-439C-82F0-30A4E43BA569}.Release|Win32.Build.0 = Release|Win32
{9D4211F7-2C77-439C-82F0-30A4E43BA569}.Release|x64.ActiveCfg = Release|x64
{9D4211F7-2C77-439C-82F0-30A4E43BA569}.Release|x64.Build.0 = Release|x64
+ {691EE0C0-DC57-4A48-8AEE-8ED75EB3A057}.Debug|ARM.ActiveCfg = Debug|Win32
{691EE0C0-DC57-4A48-8AEE-8ED75EB3A057}.Debug|Win32.ActiveCfg = Debug|Win32
{691EE0C0-DC57-4A48-8AEE-8ED75EB3A057}.Debug|Win32.Build.0 = Debug|Win32
{691EE0C0-DC57-4A48-8AEE-8ED75EB3A057}.Debug|x64.ActiveCfg = Debug|x64
{691EE0C0-DC57-4A48-8AEE-8ED75EB3A057}.Debug|x64.Build.0 = Debug|x64
+ {691EE0C0-DC57-4A48-8AEE-8ED75EB3A057}.Release|ARM.ActiveCfg = Release|Win32
{691EE0C0-DC57-4A48-8AEE-8ED75EB3A057}.Release|Win32.ActiveCfg = Release|Win32
{691EE0C0-DC57-4A48-8AEE-8ED75EB3A057}.Release|Win32.Build.0 = Release|Win32
{691EE0C0-DC57-4A48-8AEE-8ED75EB3A057}.Release|x64.ActiveCfg = Release|x64
{691EE0C0-DC57-4A48-8AEE-8ED75EB3A057}.Release|x64.Build.0 = Release|x64
+ {C7891A65-80AB-4245-912E-5F1E17B0E6C4}.Debug|ARM.ActiveCfg = Debug|Win32
{C7891A65-80AB-4245-912E-5F1E17B0E6C4}.Debug|Win32.ActiveCfg = Debug|Win32
{C7891A65-80AB-4245-912E-5F1E17B0E6C4}.Debug|Win32.Build.0 = Debug|Win32
{C7891A65-80AB-4245-912E-5F1E17B0E6C4}.Debug|x64.ActiveCfg = Debug|x64
{C7891A65-80AB-4245-912E-5F1E17B0E6C4}.Debug|x64.Build.0 = Debug|x64
+ {C7891A65-80AB-4245-912E-5F1E17B0E6C4}.Release|ARM.ActiveCfg = Release|Win32
{C7891A65-80AB-4245-912E-5F1E17B0E6C4}.Release|Win32.ActiveCfg = Release|Win32
{C7891A65-80AB-4245-912E-5F1E17B0E6C4}.Release|Win32.Build.0 = Release|Win32
{C7891A65-80AB-4245-912E-5F1E17B0E6C4}.Release|x64.ActiveCfg = Release|x64
{C7891A65-80AB-4245-912E-5F1E17B0E6C4}.Release|x64.Build.0 = Release|x64
+ {E7611F49-F088-4175-9446-6111444E72C8}.Debug|ARM.ActiveCfg = Debug|Win32
{E7611F49-F088-4175-9446-6111444E72C8}.Debug|Win32.ActiveCfg = Debug|Win32
{E7611F49-F088-4175-9446-6111444E72C8}.Debug|Win32.Build.0 = Debug|Win32
{E7611F49-F088-4175-9446-6111444E72C8}.Debug|x64.ActiveCfg = Debug|x64
{E7611F49-F088-4175-9446-6111444E72C8}.Debug|x64.Build.0 = Debug|x64
+ {E7611F49-F088-4175-9446-6111444E72C8}.Release|ARM.ActiveCfg = Release|Win32
{E7611F49-F088-4175-9446-6111444E72C8}.Release|Win32.ActiveCfg = Release|Win32
{E7611F49-F088-4175-9446-6111444E72C8}.Release|Win32.Build.0 = Release|Win32
{E7611F49-F088-4175-9446-6111444E72C8}.Release|x64.ActiveCfg = Release|x64
{E7611F49-F088-4175-9446-6111444E72C8}.Release|x64.Build.0 = Release|x64
+ {659D0C08-D4ED-4BF3-B02B-2D8D4B5A7A7A}.Debug|ARM.ActiveCfg = Debug|Win32
{659D0C08-D4ED-4BF3-B02B-2D8D4B5A7A7A}.Debug|Win32.ActiveCfg = Debug|Win32
{659D0C08-D4ED-4BF3-B02B-2D8D4B5A7A7A}.Debug|Win32.Build.0 = Debug|Win32
{659D0C08-D4ED-4BF3-B02B-2D8D4B5A7A7A}.Debug|x64.ActiveCfg = Debug|x64
{659D0C08-D4ED-4BF3-B02B-2D8D4B5A7A7A}.Debug|x64.Build.0 = Debug|x64
+ {659D0C08-D4ED-4BF3-B02B-2D8D4B5A7A7A}.Release|ARM.ActiveCfg = Release|Win32
{659D0C08-D4ED-4BF3-B02B-2D8D4B5A7A7A}.Release|Win32.ActiveCfg = Release|Win32
{659D0C08-D4ED-4BF3-B02B-2D8D4B5A7A7A}.Release|Win32.Build.0 = Release|Win32
{659D0C08-D4ED-4BF3-B02B-2D8D4B5A7A7A}.Release|x64.ActiveCfg = Release|x64
{659D0C08-D4ED-4BF3-B02B-2D8D4B5A7A7A}.Release|x64.Build.0 = Release|x64
+ {B1D53358-37BD-48BC-B27C-68BAF1E78508}.Debug|ARM.ActiveCfg = Debug|ARM
+ {B1D53358-37BD-48BC-B27C-68BAF1E78508}.Debug|ARM.Build.0 = Debug|ARM
+ {B1D53358-37BD-48BC-B27C-68BAF1E78508}.Debug|Win32.ActiveCfg = Debug|Win32
+ {B1D53358-37BD-48BC-B27C-68BAF1E78508}.Debug|Win32.Build.0 = Debug|Win32
+ {B1D53358-37BD-48BC-B27C-68BAF1E78508}.Debug|x64.ActiveCfg = Debug|x64
+ {B1D53358-37BD-48BC-B27C-68BAF1E78508}.Debug|x64.Build.0 = Debug|x64
+ {B1D53358-37BD-48BC-B27C-68BAF1E78508}.Release|ARM.ActiveCfg = Release|ARM
+ {B1D53358-37BD-48BC-B27C-68BAF1E78508}.Release|ARM.Build.0 = Release|ARM
+ {B1D53358-37BD-48BC-B27C-68BAF1E78508}.Release|Win32.ActiveCfg = Release|Win32
+ {B1D53358-37BD-48BC-B27C-68BAF1E78508}.Release|Win32.Build.0 = Release|Win32
+ {B1D53358-37BD-48BC-B27C-68BAF1E78508}.Release|x64.ActiveCfg = Release|x64
+ {B1D53358-37BD-48BC-B27C-68BAF1E78508}.Release|x64.Build.0 = Release|x64
+ {6786C051-383B-47E0-9E82-B8B994E06A25}.Debug|ARM.ActiveCfg = Debug|ARM
+ {6786C051-383B-47E0-9E82-B8B994E06A25}.Debug|ARM.Build.0 = Debug|ARM
+ {6786C051-383B-47E0-9E82-B8B994E06A25}.Debug|Win32.ActiveCfg = Debug|Win32
+ {6786C051-383B-47E0-9E82-B8B994E06A25}.Debug|Win32.Build.0 = Debug|Win32
+ {6786C051-383B-47E0-9E82-B8B994E06A25}.Debug|x64.ActiveCfg = Debug|x64
+ {6786C051-383B-47E0-9E82-B8B994E06A25}.Debug|x64.Build.0 = Debug|x64
+ {6786C051-383B-47E0-9E82-B8B994E06A25}.Release|ARM.ActiveCfg = Release|ARM
+ {6786C051-383B-47E0-9E82-B8B994E06A25}.Release|ARM.Build.0 = Release|ARM
+ {6786C051-383B-47E0-9E82-B8B994E06A25}.Release|Win32.ActiveCfg = Release|Win32
+ {6786C051-383B-47E0-9E82-B8B994E06A25}.Release|Win32.Build.0 = Release|Win32
+ {6786C051-383B-47E0-9E82-B8B994E06A25}.Release|x64.ActiveCfg = Release|x64
+ {6786C051-383B-47E0-9E82-B8B994E06A25}.Release|x64.Build.0 = Release|x64
+ {C10CF34B-3F79-430E-AD38-5A32DC0589C2}.Debug|ARM.ActiveCfg = Debug|ARM
+ {C10CF34B-3F79-430E-AD38-5A32DC0589C2}.Debug|ARM.Build.0 = Debug|ARM
+ {C10CF34B-3F79-430E-AD38-5A32DC0589C2}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C10CF34B-3F79-430E-AD38-5A32DC0589C2}.Debug|Win32.Build.0 = Debug|Win32
+ {C10CF34B-3F79-430E-AD38-5A32DC0589C2}.Debug|x64.ActiveCfg = Debug|x64
+ {C10CF34B-3F79-430E-AD38-5A32DC0589C2}.Debug|x64.Build.0 = Debug|x64
+ {C10CF34B-3F79-430E-AD38-5A32DC0589C2}.Release|ARM.ActiveCfg = Release|ARM
+ {C10CF34B-3F79-430E-AD38-5A32DC0589C2}.Release|ARM.Build.0 = Release|ARM
+ {C10CF34B-3F79-430E-AD38-5A32DC0589C2}.Release|Win32.ActiveCfg = Release|Win32
+ {C10CF34B-3F79-430E-AD38-5A32DC0589C2}.Release|Win32.Build.0 = Release|Win32
+ {C10CF34B-3F79-430E-AD38-5A32DC0589C2}.Release|x64.ActiveCfg = Release|x64
+ {C10CF34B-3F79-430E-AD38-5A32DC0589C2}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(SubversionScc) = preSolution
+ Svn-Managed = True
+ Manager = AnkhSVN - Subversion Support for Visual Studio
+ EndGlobalSection
EndGlobal
Modified: trunk/Build/source/libs/icu/icu-src/source/allinone/icucheck.bat
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/allinone/icucheck.bat 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/allinone/icucheck.bat 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,131 +1,131 @@
- at echo off
-REM Copyright (C) 2016 and later: Unicode, Inc. and others.
-REM License & terms of use: http://www.unicode.org/copyright.html
-REM ********************************************************************
-REM * COPYRIGHT:
-REM * Copyright (c) 2010-2014, International Business Machines Corporation
-REM * and others. All Rights Reserved.
-REM ********************************************************************
-
-set ICU_ARCH=%1
-set ICU_DBRL=%2
-
-if "%1" == "" (
-echo Usage: %0 "x86 or x64" "Debug or Release"
-exit /b 1
-)
-
-if "%2" == "" (
-echo Usage: %0 %1 "Debug or Release"
-exit /b 1
-)
-
-set ICU_OPATH=%PATH%
-
-set ICU_ICUDIR="%~dp0"\..\..
-
-if "%ICU_ARCH%" == "x64" (
-set ICU_BINDIR=%~dp0\..\..\bin64
-) else (
-set ICU_BINDIR=%~dp0\..\..\bin
-)
-
-set PATH=%ICU_BINDIR%;%PATH%
-
-echo testing ICU in %ICU_ICUDIR% arch=%ICU_ARCH% type=%ICU_DBRL%
-pushd %ICU_ICUDIR%
-
- at rem factor these out
-set ICUINFO_CMD=%ICU_ICUDIR%\source\tools\icuinfo\%ICU_ARCH%\%ICU_DBRL%\icuinfo.exe
-set INTLTEST_CMD=%ICU_ICUDIR%\source\test\intltest\%ICU_ARCH%\%ICU_DBRL%\intltest.exe
-set IOTEST_CMD=%ICU_ICUDIR%\source\test\iotest\%ICU_ARCH%\%ICU_DBRL%\iotest.exe
-set CINTLTST_CMD=%ICU_ICUDIR%\source\test\cintltst\%ICU_ARCH%\%ICU_DBRL%\cintltst.exe
-set LETEST_CMD=%ICU_ICUDIR%\source\test\letest\%ICU_ARCH%\%ICU_DBRL%\letest.exe
-
-set ICUFAILED=
-set ICURUN=
-set ICUFAILCNT=0
-
- at echo on
-
- at set THT=icuinfo
- at echo ==== %THT% =========================================================================
-%ICUINFO_CMD% %ICUINFO_OPTS%
-
- at IF NOT ERRORLEVEL 1 GOTO OK_%THT%
- at set ICUFAILED=%ICUFAILED% %THT%
- at set ICUFAILCNT=1
-:OK_icuinfo
- at set ICURUN=%ICURUN% %THT%
-
- at set THT=intltest
- at echo ==== %THT% =========================================================================
- at cd %ICU_ICUDIR%\source\test\intltest
-%INTLTEST_CMD% %INTLTEST_OPTS%
-
- at IF NOT ERRORLEVEL 1 GOTO OK_%THT%
- at set ICUFAILED=%ICUFAILED% %THT%
- at set ICUFAILCNT=1
-:OK_intltest
- at set ICURUN=%ICURUN% %THT%
-
- at set THT=iotest
- at echo ==== %THT% =========================================================================
- at cd %ICU_ICUDIR%\source\test\iotest
-%IOTEST_CMD% %IOTEST_OPTS%
-
- at IF NOT ERRORLEVEL 1 GOTO OK_%THT%
- at set ICUFAILED=%ICUFAILED% %THT%
- at set ICUFAILCNT=1
-:OK_IOTEST
- at set ICURUN=%ICURUN% %THT%
-
- at set THT=cintltst
- at echo ==== %THT% =========================================================================
- at cd %ICU_ICUDIR%\source\test\cintltst
-%CINTLTST_CMD% %CINTLTST_OPTS%
-
- at IF NOT ERRORLEVEL 1 GOTO OK_%THT%
- at set ICUFAILED=%ICUFAILED% %THT%
- at set ICUFAILCNT=1
-:OK_cintltst
- at set ICURUN=%ICURUN% %THT%
-
- at REM (Layout is deprecated - this would require HarfBuzz)
- at REM @set THT=letest
- at REM @echo ==== %THT% =========================================================================
- at REM @cd %ICU_ICUDIR%\source\test\letest
- at REM %LETST_CMD% %LETEST_OPTS%
-
- at REM @IF NOT ERRORLEVEL 1 GOTO OK_%THT%
- at REM @set ICUFAILED=%ICUFAILED% %THT%
- at REM @set ICUFAILCNT=1
- at REM :OK_letest
- at REM @set ICURUN=%ICURUN% %THT%
-
- at echo off
-
-REM clean up
-set PATH=%ICU_OPATH%
-REM unset ICU_OPATH
-popd
-
- at REM done
-
-echo -
-echo -
-echo -
-echo ============================================================
-echo Summary: ICU in %ICU_ICUDIR% arch=%ICU_ARCH% type=%ICU_DBRL%
-echo -
-echo Tests Run : %ICURUN%
-
-if %ICUFAILCNT% == 0 (
- echo " - All Passed!"
- exit /b 0
-)
-echo Failing Tests: %ICUFAILED%
-echo -
-echo FAILED!
-
-exit /b 1
+ at echo off
+REM Copyright (C) 2016 and later: Unicode, Inc. and others.
+REM License & terms of use: http://www.unicode.org/copyright.html
+REM ********************************************************************
+REM * COPYRIGHT:
+REM * Copyright (c) 2010-2014, International Business Machines Corporation
+REM * and others. All Rights Reserved.
+REM ********************************************************************
+
+set ICU_ARCH=%1
+set ICU_DBRL=%2
+
+if "%1" == "" (
+echo Usage: %0 "x86 or x64" "Debug or Release"
+exit /b 1
+)
+
+if "%2" == "" (
+echo Usage: %0 %1 "Debug or Release"
+exit /b 1
+)
+
+set ICU_OPATH=%PATH%
+
+set ICU_ICUDIR="%~dp0"\..\..
+
+if "%ICU_ARCH%" == "x64" (
+set ICU_BINDIR=%~dp0\..\..\bin64
+) else (
+set ICU_BINDIR=%~dp0\..\..\bin
+)
+
+set PATH=%ICU_BINDIR%;%PATH%
+
+echo testing ICU in %ICU_ICUDIR% arch=%ICU_ARCH% type=%ICU_DBRL%
+pushd %ICU_ICUDIR%
+
+ at rem factor these out
+set ICUINFO_CMD=%ICU_ICUDIR%\source\tools\icuinfo\%ICU_ARCH%\%ICU_DBRL%\icuinfo.exe
+set INTLTEST_CMD=%ICU_ICUDIR%\source\test\intltest\%ICU_ARCH%\%ICU_DBRL%\intltest.exe
+set IOTEST_CMD=%ICU_ICUDIR%\source\test\iotest\%ICU_ARCH%\%ICU_DBRL%\iotest.exe
+set CINTLTST_CMD=%ICU_ICUDIR%\source\test\cintltst\%ICU_ARCH%\%ICU_DBRL%\cintltst.exe
+set LETEST_CMD=%ICU_ICUDIR%\source\test\letest\%ICU_ARCH%\%ICU_DBRL%\letest.exe
+
+set ICUFAILED=
+set ICURUN=
+set ICUFAILCNT=0
+
+ at echo on
+
+ at set THT=icuinfo
+ at echo ==== %THT% =========================================================================
+%ICUINFO_CMD% %ICUINFO_OPTS%
+
+ at IF NOT ERRORLEVEL 1 GOTO OK_%THT%
+ at set ICUFAILED=%ICUFAILED% %THT%
+ at set ICUFAILCNT=1
+:OK_icuinfo
+ at set ICURUN=%ICURUN% %THT%
+
+ at set THT=intltest
+ at echo ==== %THT% =========================================================================
+ at cd %ICU_ICUDIR%\source\test\intltest
+%INTLTEST_CMD% %INTLTEST_OPTS%
+
+ at IF NOT ERRORLEVEL 1 GOTO OK_%THT%
+ at set ICUFAILED=%ICUFAILED% %THT%
+ at set ICUFAILCNT=1
+:OK_intltest
+ at set ICURUN=%ICURUN% %THT%
+
+ at set THT=iotest
+ at echo ==== %THT% =========================================================================
+ at cd %ICU_ICUDIR%\source\test\iotest
+%IOTEST_CMD% %IOTEST_OPTS%
+
+ at IF NOT ERRORLEVEL 1 GOTO OK_%THT%
+ at set ICUFAILED=%ICUFAILED% %THT%
+ at set ICUFAILCNT=1
+:OK_IOTEST
+ at set ICURUN=%ICURUN% %THT%
+
+ at set THT=cintltst
+ at echo ==== %THT% =========================================================================
+ at cd %ICU_ICUDIR%\source\test\cintltst
+%CINTLTST_CMD% %CINTLTST_OPTS%
+
+ at IF NOT ERRORLEVEL 1 GOTO OK_%THT%
+ at set ICUFAILED=%ICUFAILED% %THT%
+ at set ICUFAILCNT=1
+:OK_cintltst
+ at set ICURUN=%ICURUN% %THT%
+
+ at REM (Layout is deprecated - this would require HarfBuzz)
+ at REM @set THT=letest
+ at REM @echo ==== %THT% =========================================================================
+ at REM @cd %ICU_ICUDIR%\source\test\letest
+ at REM %LETST_CMD% %LETEST_OPTS%
+
+ at REM @IF NOT ERRORLEVEL 1 GOTO OK_%THT%
+ at REM @set ICUFAILED=%ICUFAILED% %THT%
+ at REM @set ICUFAILCNT=1
+ at REM :OK_letest
+ at REM @set ICURUN=%ICURUN% %THT%
+
+ at echo off
+
+REM clean up
+set PATH=%ICU_OPATH%
+REM unset ICU_OPATH
+popd
+
+ at REM done
+
+echo -
+echo -
+echo -
+echo ============================================================
+echo Summary: ICU in %ICU_ICUDIR% arch=%ICU_ARCH% type=%ICU_DBRL%
+echo -
+echo Tests Run : %ICURUN%
+
+if %ICUFAILCNT% == 0 (
+ echo " - All Passed!"
+ exit /b 0
+)
+echo Failing Tests: %ICUFAILED%
+echo -
+echo FAILED!
+
+exit /b 1
Modified: trunk/Build/source/libs/icu/icu-src/source/common/Makefile.in
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/Makefile.in 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/Makefile.in 2018-01-12 18:35:28 UTC (rev 46290)
@@ -89,11 +89,12 @@
resource.o uresbund.o ures_cnv.o uresdata.o resbund.o resbund_cnv.o \
ucurr.o \
messagepattern.o ucat.o locmap.o uloc.o locid.o locutil.o locavailable.o locdispnames.o locdspnm.o loclikely.o locresdata.o \
-bytestream.o stringpiece.o \
+bytestream.o stringpiece.o bytesinkutil.o \
stringtriebuilder.o bytestriebuilder.o \
bytestrie.o bytestrieiterator.o \
ucharstrie.o ucharstriebuilder.o ucharstrieiterator.o \
dictionarydata.o \
+edits.o \
appendable.o ustr_cnv.o unistr_cnv.o unistr.o unistr_case.o unistr_props.o \
utf_impl.o ustring.o ustrcase.o ucasemap.o ucasemap_titlecase_brkiter.o cstring.o ustrfmt.o ustrtrns.o ustr_wcs.o utext.o \
unistr_case_locale.o ustrcase_locale.o unistr_titlecase_brkiter.o ustr_titlecase_brkiter.o \
@@ -103,7 +104,7 @@
uscript.o uscript_props.o usc_impl.o unames.o \
utrie.o utrie2.o utrie2_builder.o bmpset.o unisetspan.o uset_props.o uniset_props.o uniset_closure.o uset.o uniset.o usetiter.o ruleiter.o caniter.o unifilt.o unifunct.o \
uarrsort.o brkiter.o ubrk.o brkeng.o dictbe.o filteredbrk.o \
-rbbi.o rbbidata.o rbbinode.o rbbirb.o rbbiscan.o rbbisetb.o rbbistbl.o rbbitblb.o \
+rbbi.o rbbidata.o rbbinode.o rbbirb.o rbbiscan.o rbbisetb.o rbbistbl.o rbbitblb.o rbbi_cache.o \
serv.o servnotf.o servls.o servlk.o servlkf.o servrbf.o servslkf.o \
uidna.o usprep.o uts46.o punycode.o \
util.o util_props.o parsepos.o locbased.o cwchar.o wintz.o dtintrv.o ucnvsel.o propsvec.o \
Modified: trunk/Build/source/libs/icu/icu-src/source/common/appendable.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/appendable.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/appendable.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
@@ -6,7 +6,7 @@
* Corporation and others. All Rights Reserved.
*******************************************************************************
* file name: appendable.cpp
-* encoding: US-ASCII
+* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
Modified: trunk/Build/source/libs/icu/icu-src/source/common/bmpset.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/bmpset.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/bmpset.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
******************************************************************************
@@ -8,7 +8,7 @@
*
******************************************************************************
* file name: bmpset.cpp
-* encoding: US-ASCII
+* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
@@ -28,7 +28,7 @@
BMPSet::BMPSet(const int32_t *parentList, int32_t parentListLength) :
list(parentList), listLength(parentListLength) {
- uprv_memset(asciiBytes, 0, sizeof(asciiBytes));
+ uprv_memset(latin1Contains, 0, sizeof(latin1Contains));
uprv_memset(table7FF, 0, sizeof(table7FF));
uprv_memset(bmpBlockBits, 0, sizeof(bmpBlockBits));
@@ -45,6 +45,7 @@
list4kStarts[i]=findCodePoint(i<<12, list4kStarts[i-1], listLength-1);
}
list4kStarts[0x11]=listLength-1;
+ containsFFFD=containsSlow(0xfffd, list4kStarts[0xf], list4kStarts[0x10]);
initBits();
overrideIllegal();
@@ -51,8 +52,9 @@
}
BMPSet::BMPSet(const BMPSet &otherBMPSet, const int32_t *newParentList, int32_t newParentListLength) :
+ containsFFFD(otherBMPSet.containsFFFD),
list(newParentList), listLength(newParentListLength) {
- uprv_memcpy(asciiBytes, otherBMPSet.asciiBytes, sizeof(asciiBytes));
+ uprv_memcpy(latin1Contains, otherBMPSet.latin1Contains, sizeof(latin1Contains));
uprv_memcpy(table7FF, otherBMPSet.table7FF, sizeof(table7FF));
uprv_memcpy(bmpBlockBits, otherBMPSet.bmpBlockBits, sizeof(bmpBlockBits));
uprv_memcpy(list4kStarts, otherBMPSet.list4kStarts, sizeof(list4kStarts));
@@ -120,7 +122,7 @@
UChar32 start, limit;
int32_t listIndex=0;
- // Set asciiBytes[].
+ // Set latin1Contains[].
do {
start=list[listIndex++];
if(listIndex<listLength) {
@@ -128,14 +130,31 @@
} else {
limit=0x110000;
}
- if(start>=0x80) {
+ if(start>=0x100) {
break;
}
do {
- asciiBytes[start++]=1;
- } while(start<limit && start<0x80);
- } while(limit<=0x80);
+ latin1Contains[start++]=1;
+ } while(start<limit && start<0x100);
+ } while(limit<=0x100);
+ // Find the first range overlapping with (or after) 80..FF again,
+ // to include them in table7FF as well.
+ for(listIndex=0;;) {
+ start=list[listIndex++];
+ if(listIndex<listLength) {
+ limit=list[listIndex++];
+ } else {
+ limit=0x110000;
+ }
+ if(limit>0x80) {
+ if(start<0x80) {
+ start=0x80;
+ }
+ break;
+ }
+ }
+
// Set table7FF[].
while(start<0x800) {
set32x64Bits(table7FF, start, limit<=0x800 ? limit : 0x800);
@@ -204,7 +223,7 @@
* for faster validity checking at runtime.
* No need to set 0 values where they were reset to 0 in the constructor
* and not modified by initBits().
- * (asciiBytes[] trail bytes, table7FF[] 0..7F, bmpBlockBits[] 0..7FF)
+ * (table7FF[] 0..7F, bmpBlockBits[] 0..7FF)
* Need to set 0 values for surrogates D800..DFFF.
*/
void BMPSet::overrideIllegal() {
@@ -211,12 +230,7 @@
uint32_t bits, mask;
int32_t i;
- if(containsSlow(0xfffd, list4kStarts[0xf], list4kStarts[0x10])) {
- // contains(FFFD)==TRUE
- for(i=0x80; i<0xc0; ++i) {
- asciiBytes[i]=1;
- }
-
+ if(containsFFFD) {
bits=3; // Lead bytes 0xC0 and 0xC1.
for(i=0; i<64; ++i) {
table7FF[i]|=bits;
@@ -233,7 +247,6 @@
bmpBlockBits[i]=(bmpBlockBits[i]&mask)|bits;
}
} else {
- // contains(FFFD)==FALSE
mask=~(0x10001<<0xd); // Lead byte 0xED.
for(i=32; i<64; ++i) { // Second half of 4k block.
bmpBlockBits[i]&=mask;
@@ -277,8 +290,8 @@
UBool
BMPSet::contains(UChar32 c) const {
- if((uint32_t)c<=0x7f) {
- return (UBool)asciiBytes[c];
+ if((uint32_t)c<=0xff) {
+ return (UBool)latin1Contains[c];
} else if((uint32_t)c<=0x7ff) {
return (UBool)((table7FF[c&0x3f]&((uint32_t)1<<(c>>6)))!=0);
} else if((uint32_t)c<0xd800 || (c>=0xe000 && c<=0xffff)) {
@@ -314,8 +327,8 @@
// span
do {
c=*s;
- if(c<=0x7f) {
- if(!asciiBytes[c]) {
+ if(c<=0xff) {
+ if(!latin1Contains[c]) {
break;
}
} else if(c<=0x7ff) {
@@ -354,8 +367,8 @@
// span not
do {
c=*s;
- if(c<=0x7f) {
- if(asciiBytes[c]) {
+ if(c<=0xff) {
+ if(latin1Contains[c]) {
break;
}
} else if(c<=0x7ff) {
@@ -403,8 +416,8 @@
// span
for(;;) {
c=*(--limit);
- if(c<=0x7f) {
- if(!asciiBytes[c]) {
+ if(c<=0xff) {
+ if(!latin1Contains[c]) {
break;
}
} else if(c<=0x7ff) {
@@ -446,8 +459,8 @@
// span not
for(;;) {
c=*(--limit);
- if(c<=0x7f) {
- if(asciiBytes[c]) {
+ if(c<=0xff) {
+ if(latin1Contains[c]) {
break;
}
} else if(c<=0x7ff) {
@@ -497,22 +510,22 @@
BMPSet::spanUTF8(const uint8_t *s, int32_t length, USetSpanCondition spanCondition) const {
const uint8_t *limit=s+length;
uint8_t b=*s;
- if((int8_t)b>=0) {
+ if(U8_IS_SINGLE(b)) {
// Initial all-ASCII span.
if(spanCondition) {
do {
- if(!asciiBytes[b] || ++s==limit) {
+ if(!latin1Contains[b] || ++s==limit) {
return s;
}
b=*s;
- } while((int8_t)b>=0);
+ } while(U8_IS_SINGLE(b));
} else {
do {
- if(asciiBytes[b] || ++s==limit) {
+ if(latin1Contains[b] || ++s==limit) {
return s;
}
b=*s;
- } while((int8_t)b>=0);
+ } while(U8_IS_SINGLE(b));
}
length=(int32_t)(limit-s);
}
@@ -540,13 +553,13 @@
// single trail byte, check for preceding 3- or 4-byte lead byte
if(length>=2 && (b=*(limit-2))>=0xe0) {
limit-=2;
- if(asciiBytes[0x80]!=spanCondition) {
+ if(containsFFFD!=spanCondition) {
limit0=limit;
}
} else if(b<0xc0 && b>=0x80 && length>=3 && (b=*(limit-3))>=0xf0) {
// 4-byte lead byte with only two trail bytes
limit-=3;
- if(asciiBytes[0x80]!=spanCondition) {
+ if(containsFFFD!=spanCondition) {
limit0=limit;
}
}
@@ -553,7 +566,7 @@
} else {
// lead byte with no trail bytes
--limit;
- if(asciiBytes[0x80]!=spanCondition) {
+ if(containsFFFD!=spanCondition) {
limit0=limit;
}
}
@@ -563,26 +576,26 @@
while(s<limit) {
b=*s;
- if(b<0xc0) {
- // ASCII; or trail bytes with the result of contains(FFFD).
+ if(U8_IS_SINGLE(b)) {
+ // ASCII
if(spanCondition) {
do {
- if(!asciiBytes[b]) {
+ if(!latin1Contains[b]) {
return s;
} else if(++s==limit) {
return limit0;
}
b=*s;
- } while(b<0xc0);
+ } while(U8_IS_SINGLE(b));
} else {
do {
- if(asciiBytes[b]) {
+ if(latin1Contains[b]) {
return s;
} else if(++s==limit) {
return limit0;
}
b=*s;
- } while(b<0xc0);
+ } while(U8_IS_SINGLE(b));
}
}
++s; // Advance past the lead byte.
@@ -619,7 +632,7 @@
UChar32 c=((UChar32)(b-0xf0)<<18)|((UChar32)t1<<12)|(t2<<6)|t3;
if( ( (0x10000<=c && c<=0x10ffff) ?
containsSlow(c, list4kStarts[0x10], list4kStarts[0x11]) :
- asciiBytes[0x80]
+ containsFFFD
) != spanCondition
) {
return s-1;
@@ -627,8 +640,9 @@
s+=3;
continue;
}
- } else /* 0xc0<=b<0xe0 */ {
+ } else {
if( /* handle U+0000..U+07FF inline */
+ b>=0xc0 &&
(t1=(uint8_t)(*s-0x80)) <= 0x3f
) {
if((USetSpanCondition)((table7FF[t1]&((uint32_t)1<<(b&0x1f)))!=0) != spanCondition) {
@@ -642,7 +656,7 @@
// Give an illegal sequence the same value as the result of contains(FFFD).
// Handle each byte of an illegal sequence separately to simplify the code;
// no need to optimize error handling.
- if(asciiBytes[0x80]!=spanCondition) {
+ if(containsFFFD!=spanCondition) {
return s-1;
}
}
@@ -667,26 +681,26 @@
do {
b=s[--length];
- if((int8_t)b>=0) {
+ if(U8_IS_SINGLE(b)) {
// ASCII sub-span
if(spanCondition) {
do {
- if(!asciiBytes[b]) {
+ if(!latin1Contains[b]) {
return length+1;
} else if(length==0) {
return 0;
}
b=s[--length];
- } while((int8_t)b>=0);
+ } while(U8_IS_SINGLE(b));
} else {
do {
- if(asciiBytes[b]) {
+ if(latin1Contains[b]) {
return length+1;
} else if(length==0) {
return 0;
}
b=s[--length];
- } while((int8_t)b>=0);
+ } while(U8_IS_SINGLE(b));
}
}
Modified: trunk/Build/source/libs/icu/icu-src/source/common/bmpset.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/bmpset.h 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/bmpset.h 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
******************************************************************************
@@ -8,7 +8,7 @@
*
******************************************************************************
* file name: bmpset.h
-* encoding: US-ASCII
+* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
@@ -28,11 +28,12 @@
* Helper class for frozen UnicodeSets, implements contains() and span()
* optimized for BMP code points. Structured to be UTF-8-friendly.
*
- * ASCII: Look up bytes.
+ * Latin-1: Look up bytes.
* 2-byte characters: Bits organized vertically.
* 3-byte characters: Use zero/one/mixed data per 64-block in U+0000..U+FFFF,
* with mixed for illegal ranges.
- * Supplementary characters: Call contains() on the parent set.
+ * Supplementary characters: Binary search over
+ * the supplementary part of the parent set's inversion list.
*/
class BMPSet : public UMemory {
public:
@@ -96,13 +97,13 @@
inline UBool containsSlow(UChar32 c, int32_t lo, int32_t hi) const;
/*
- * One byte per ASCII character, or trail byte in lead position.
- * 0 or 1 for ASCII characters.
- * The value for trail bytes is the result of contains(FFFD)
- * for faster validity checking at runtime.
+ * One byte 0 or 1 per Latin-1 character.
*/
- UBool asciiBytes[0xc0];
+ UBool latin1Contains[0x100];
+ /* TRUE if contains(U+FFFD). */
+ UBool containsFFFD;
+
/*
* One bit per code point from U+0000..U+07FF.
* The bits are organized vertically; consecutive code points
Modified: trunk/Build/source/libs/icu/icu-src/source/common/brkeng.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/brkeng.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/brkeng.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
************************************************************************************
@@ -11,9 +11,6 @@
#if !UCONFIG_NO_BREAK_ITERATION
-#include "brkeng.h"
-#include "cmemory.h"
-#include "dictbe.h"
#include "unicode/uchar.h"
#include "unicode/uniset.h"
#include "unicode/chariter.h"
@@ -24,6 +21,10 @@
#include "unicode/uscript.h"
#include "unicode/ucharstrie.h"
#include "unicode/bytestrie.h"
+
+#include "brkeng.h"
+#include "cmemory.h"
+#include "dictbe.h"
#include "charstr.h"
#include "dictionarydata.h"
#include "mutex.h"
@@ -80,24 +81,16 @@
int32_t
UnhandledEngine::findBreaks( UText *text,
- int32_t startPos,
- int32_t endPos,
- UBool reverse,
- int32_t breakType,
- UStack &/*foundBreaks*/ ) const {
+ int32_t /* startPos */,
+ int32_t endPos,
+ int32_t breakType,
+ UVector32 &/*foundBreaks*/ ) const {
if (breakType >= 0 && breakType < UPRV_LENGTHOF(fHandled)) {
UChar32 c = utext_current32(text);
- if (reverse) {
- while((int32_t)utext_getNativeIndex(text) > startPos && fHandled[breakType]->contains(c)) {
- c = utext_previous32(text);
- }
+ while((int32_t)utext_getNativeIndex(text) < endPos && fHandled[breakType]->contains(c)) {
+ utext_next32(text); // TODO: recast loop to work with post-increment operations.
+ c = utext_current32(text);
}
- else {
- while((int32_t)utext_getNativeIndex(text) < endPos && fHandled[breakType]->contains(c)) {
- utext_next32(text); // TODO: recast loop to work with post-increment operations.
- c = utext_current32(text);
- }
- }
}
return 0;
}
Modified: trunk/Build/source/libs/icu/icu-src/source/common/brkeng.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/brkeng.h 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/brkeng.h 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/**
************************************************************************************
@@ -19,6 +19,7 @@
class UnicodeSet;
class UStack;
+class UVector32;
class DictionaryMatcher;
/*******************************************************************
@@ -67,18 +68,15 @@
* is capable of handling.
* @param startPos The start of the run within the supplied text.
* @param endPos The end of the run within the supplied text.
- * @param reverse Whether the caller is looking for breaks in a reverse
- * direction.
* @param breakType The type of break desired, or -1.
- * @param foundBreaks An allocated C array of the breaks found, if any
+ * @param foundBreaks A Vector of int32_t to receive the breaks.
* @return The number of breaks found.
*/
virtual int32_t findBreaks( UText *text,
int32_t startPos,
int32_t endPos,
- UBool reverse,
int32_t breakType,
- UStack &foundBreaks ) const = 0;
+ UVector32 &foundBreaks ) const = 0;
};
@@ -192,8 +190,6 @@
* is capable of handling.
* @param startPos The start of the run within the supplied text.
* @param endPos The end of the run within the supplied text.
- * @param reverse Whether the caller is looking for breaks in a reverse
- * direction.
* @param breakType The type of break desired, or -1.
* @param foundBreaks An allocated C array of the breaks found, if any
* @return The number of breaks found.
@@ -201,9 +197,8 @@
virtual int32_t findBreaks( UText *text,
int32_t startPos,
int32_t endPos,
- UBool reverse,
int32_t breakType,
- UStack &foundBreaks ) const;
+ UVector32 &foundBreaks ) const;
/**
* <p>Tell the engine to handle a particular character and break type.</p>
Modified: trunk/Build/source/libs/icu/icu-src/source/common/brkiter.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/brkiter.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/brkiter.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
@@ -195,7 +195,7 @@
// ------------------------------------------
//
-// Default constructor and destructor
+// Constructors, destructor and assignment operator
//
//-------------------------------------------
@@ -204,6 +204,19 @@
*validLocale = *actualLocale = 0;
}
+BreakIterator::BreakIterator(const BreakIterator &other) : UObject(other) {
+ uprv_strncpy(actualLocale, other.actualLocale, sizeof(actualLocale));
+ uprv_strncpy(validLocale, other.validLocale, sizeof(validLocale));
+}
+
+BreakIterator &BreakIterator::operator =(const BreakIterator &other) {
+ if (this != &other) {
+ uprv_strncpy(actualLocale, other.actualLocale, sizeof(actualLocale));
+ uprv_strncpy(validLocale, other.validLocale, sizeof(validLocale));
+ }
+ return *this;
+}
+
BreakIterator::~BreakIterator()
{
}
@@ -265,7 +278,7 @@
// defined in ucln_cmn.h
U_NAMESPACE_END
-static icu::UInitOnce gInitOnce;
+static icu::UInitOnce gInitOnceBrkiter;
static icu::ICULocaleService* gService = NULL;
@@ -280,7 +293,7 @@
delete gService;
gService = NULL;
}
- gInitOnce.reset();
+ gInitOnceBrkiter.reset();
#endif
return TRUE;
}
@@ -296,7 +309,7 @@
static ICULocaleService*
getService(void)
{
- umtx_initOnce(gInitOnce, &initService);
+ umtx_initOnce(gInitOnceBrkiter, &initService);
return gService;
}
@@ -306,7 +319,7 @@
static inline UBool
hasService(void)
{
- return !gInitOnce.isReset() && getService() != NULL;
+ return !gInitOnceBrkiter.isReset() && getService() != NULL;
}
// -------------------------------------
Added: trunk/Build/source/libs/icu/icu-src/source/common/bytesinkutil.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/bytesinkutil.cpp (rev 0)
+++ trunk/Build/source/libs/icu/icu-src/source/common/bytesinkutil.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -0,0 +1,123 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// bytesinkutil.cpp
+// created: 2017sep14 Markus W. Scherer
+
+#include "unicode/utypes.h"
+#include "unicode/bytestream.h"
+#include "unicode/edits.h"
+#include "unicode/stringoptions.h"
+#include "unicode/utf8.h"
+#include "unicode/utf16.h"
+#include "bytesinkutil.h"
+#include "cmemory.h"
+#include "uassert.h"
+
+U_NAMESPACE_BEGIN
+
+UBool
+ByteSinkUtil::appendChange(int32_t length, const char16_t *s16, int32_t s16Length,
+ ByteSink &sink, Edits *edits, UErrorCode &errorCode) {
+ if (U_FAILURE(errorCode)) { return FALSE; }
+ char scratch[200];
+ int32_t s8Length = 0;
+ for (int32_t i = 0; i < s16Length;) {
+ int32_t capacity;
+ int32_t desiredCapacity = s16Length - i;
+ if (desiredCapacity < (INT32_MAX / 3)) {
+ desiredCapacity *= 3; // max 3 UTF-8 bytes per UTF-16 code unit
+ } else if (desiredCapacity < (INT32_MAX / 2)) {
+ desiredCapacity *= 2;
+ } else {
+ desiredCapacity = INT32_MAX;
+ }
+ char *buffer = sink.GetAppendBuffer(U8_MAX_LENGTH, desiredCapacity,
+ scratch, UPRV_LENGTHOF(scratch), &capacity);
+ capacity -= U8_MAX_LENGTH - 1;
+ int32_t j = 0;
+ for (; i < s16Length && j < capacity;) {
+ UChar32 c;
+ U16_NEXT_UNSAFE(s16, i, c);
+ U8_APPEND_UNSAFE(buffer, j, c);
+ }
+ if (j > (INT32_MAX - s8Length)) {
+ errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
+ return FALSE;
+ }
+ sink.Append(buffer, j);
+ s8Length += j;
+ }
+ if (edits != nullptr) {
+ edits->addReplace(length, s8Length);
+ }
+ return TRUE;
+}
+
+UBool
+ByteSinkUtil::appendChange(const uint8_t *s, const uint8_t *limit,
+ const char16_t *s16, int32_t s16Length,
+ ByteSink &sink, Edits *edits, UErrorCode &errorCode) {
+ if (U_FAILURE(errorCode)) { return FALSE; }
+ if ((limit - s) > INT32_MAX) {
+ errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
+ return FALSE;
+ }
+ return appendChange((int32_t)(limit - s), s16, s16Length, sink, edits, errorCode);
+}
+
+void
+ByteSinkUtil::appendCodePoint(int32_t length, UChar32 c, ByteSink &sink, Edits *edits) {
+ char s8[U8_MAX_LENGTH];
+ int32_t s8Length = 0;
+ U8_APPEND_UNSAFE(s8, s8Length, c);
+ if (edits != nullptr) {
+ edits->addReplace(length, s8Length);
+ }
+ sink.Append(s8, s8Length);
+}
+
+namespace {
+
+// See unicode/utf8.h U8_APPEND_UNSAFE().
+inline uint8_t getTwoByteLead(UChar32 c) { return (uint8_t)((c >> 6) | 0xc0); }
+inline uint8_t getTwoByteTrail(UChar32 c) { return (uint8_t)((c & 0x3f) | 0x80); }
+
+} // namespace
+
+void
+ByteSinkUtil::appendTwoBytes(UChar32 c, ByteSink &sink) {
+ U_ASSERT(0x80 <= c && c <= 0x7ff); // 2-byte UTF-8
+ char s8[2] = { (char)getTwoByteLead(c), (char)getTwoByteTrail(c) };
+ sink.Append(s8, 2);
+}
+
+UBool
+ByteSinkUtil::appendUnchanged(const uint8_t *s, int32_t length,
+ ByteSink &sink, uint32_t options, Edits *edits,
+ UErrorCode &errorCode) {
+ if (U_FAILURE(errorCode)) { return FALSE; }
+ if (length > 0) {
+ if (edits != nullptr) {
+ edits->addUnchanged(length);
+ }
+ if ((options & U_OMIT_UNCHANGED_TEXT) == 0) {
+ sink.Append(reinterpret_cast<const char *>(s), length);
+ }
+ }
+ return TRUE;
+}
+
+UBool
+ByteSinkUtil::appendUnchanged(const uint8_t *s, const uint8_t *limit,
+ ByteSink &sink, uint32_t options, Edits *edits,
+ UErrorCode &errorCode) {
+ if (U_FAILURE(errorCode)) { return FALSE; }
+ if ((limit - s) > INT32_MAX) {
+ errorCode = U_INDEX_OUTOFBOUNDS_ERROR;
+ return FALSE;
+ }
+ return appendUnchanged(s, (int32_t)(limit - s), sink, options, edits, errorCode);
+}
+
+U_NAMESPACE_END
Property changes on: trunk/Build/source/libs/icu/icu-src/source/common/bytesinkutil.cpp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Build/source/libs/icu/icu-src/source/common/bytesinkutil.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/bytesinkutil.h (rev 0)
+++ trunk/Build/source/libs/icu/icu-src/source/common/bytesinkutil.h 2018-01-12 18:35:28 UTC (rev 46290)
@@ -0,0 +1,53 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// bytesinkutil.h
+// created: 2017sep14 Markus W. Scherer
+
+#include "unicode/utypes.h"
+#include "unicode/bytestream.h"
+#include "unicode/edits.h"
+#include "cmemory.h"
+#include "uassert.h"
+
+U_NAMESPACE_BEGIN
+
+class ByteSink;
+class Edits;
+
+class U_COMMON_API ByteSinkUtil {
+public:
+ ByteSinkUtil() = delete; // all static
+
+ /** (length) bytes were mapped to valid (s16, s16Length). */
+ static UBool appendChange(int32_t length,
+ const char16_t *s16, int32_t s16Length,
+ ByteSink &sink, Edits *edits, UErrorCode &errorCode);
+
+ /** The bytes at [s, limit[ were mapped to valid (s16, s16Length). */
+ static UBool appendChange(const uint8_t *s, const uint8_t *limit,
+ const char16_t *s16, int32_t s16Length,
+ ByteSink &sink, Edits *edits, UErrorCode &errorCode);
+
+ /** (length) bytes were mapped/changed to valid code point c. */
+ static void appendCodePoint(int32_t length, UChar32 c, ByteSink &sink, Edits *edits = nullptr);
+
+ /** The few bytes at [src, nextSrc[ were mapped/changed to valid code point c. */
+ static inline void appendCodePoint(const uint8_t *src, const uint8_t *nextSrc, UChar32 c,
+ ByteSink &sink, Edits *edits = nullptr) {
+ appendCodePoint((int32_t)(nextSrc - src), c, sink, edits);
+ }
+
+ /** Append the two-byte character (U+0080..U+07FF). */
+ static void appendTwoBytes(UChar32 c, ByteSink &sink);
+
+ static UBool appendUnchanged(const uint8_t *s, int32_t length,
+ ByteSink &sink, uint32_t options, Edits *edits,
+ UErrorCode &errorCode);
+
+ static UBool appendUnchanged(const uint8_t *s, const uint8_t *limit,
+ ByteSink &sink, uint32_t options, Edits *edits,
+ UErrorCode &errorCode);
+};
+
+U_NAMESPACE_END
Property changes on: trunk/Build/source/libs/icu/icu-src/source/common/bytesinkutil.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Build/source/libs/icu/icu-src/source/common/bytestream.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/bytestream.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/bytestream.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
// Copyright (C) 2009-2011, International Business Machines
// Corporation and others. All Rights Reserved.
@@ -45,6 +45,12 @@
if (n <= 0) {
return;
}
+ if (n > (INT32_MAX - appended_)) {
+ // TODO: Report as integer overflow, not merely buffer overflow.
+ appended_ = INT32_MAX;
+ overflowed_ = TRUE;
+ return;
+ }
appended_ += n;
int32_t available = capacity_ - size_;
if (n > available) {
Modified: trunk/Build/source/libs/icu/icu-src/source/common/bytestrie.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/bytestrie.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/bytestrie.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
@@ -6,7 +6,7 @@
* Corporation and others. All Rights Reserved.
*******************************************************************************
* file name: bytestrie.cpp
-* encoding: US-ASCII
+* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
Modified: trunk/Build/source/libs/icu/icu-src/source/common/bytestriebuilder.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/bytestriebuilder.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/bytestriebuilder.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
@@ -6,7 +6,7 @@
* Corporation and others. All Rights Reserved.
*******************************************************************************
* file name: bytestriebuilder.cpp
-* encoding: US-ASCII
+* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
Modified: trunk/Build/source/libs/icu/icu-src/source/common/bytestrieiterator.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/bytestrieiterator.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/bytestrieiterator.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
@@ -6,7 +6,7 @@
* Corporation and others. All Rights Reserved.
*******************************************************************************
* file name: bytestrieiterator.cpp
-* encoding: US-ASCII
+* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
Modified: trunk/Build/source/libs/icu/icu-src/source/common/caniter.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/caniter.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/caniter.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*****************************************************************************
@@ -311,12 +311,12 @@
// see what the permutations of the characters before and after this one are
//Hashtable *subpermute = permute(source.substring(0,i) + source.substring(i + UTF16.getCharCount(cp)));
- permute(subPermuteString.replace(i, U16_LENGTH(cp), NULL, 0), skipZeros, &subpermute, status);
+ permute(subPermuteString.remove(i, U16_LENGTH(cp)), skipZeros, &subpermute, status);
/* Test for buffer overflows */
if(U_FAILURE(status)) {
return;
}
- // The upper replace is destructive. The question is do we have to make a copy, or we don't care about the contents
+ // The upper remove is destructive. The question is do we have to make a copy, or we don't care about the contents
// of source at this point.
// prefix this character to all of them
@@ -405,7 +405,7 @@
//String[] finalResult = new String[result.size()];
UnicodeString *finalResult = NULL;
int32_t resultCount;
- if((resultCount = result.count())) {
+ if((resultCount = result.count()) != 0) {
finalResult = new UnicodeString[resultCount];
if (finalResult == 0) {
status = U_MEMORY_ALLOCATION_ERROR;
Modified: trunk/Build/source/libs/icu/icu-src/source/common/chariter.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/chariter.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/chariter.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
**********************************************************************
Modified: trunk/Build/source/libs/icu/icu-src/source/common/charstr.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/charstr.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/charstr.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
@@ -6,7 +6,7 @@
* Corporation and others. All Rights Reserved.
*******************************************************************************
* file name: charstr.cpp
-* encoding: US-ASCII
+* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
@@ -15,6 +15,7 @@
*/
#include "unicode/utypes.h"
+#include "unicode/putil.h"
#include "charstr.h"
#include "cmemory.h"
#include "cstring.h"
Modified: trunk/Build/source/libs/icu/icu-src/source/common/charstr.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/charstr.h 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/charstr.h 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
**********************************************************************
Deleted: trunk/Build/source/libs/icu/icu-src/source/common/cmemory.c
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/cmemory.c 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/cmemory.c 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,162 +0,0 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-******************************************************************************
-*
-* Copyright (C) 2002-2015, International Business Machines
-* Corporation and others. All Rights Reserved.
-*
-******************************************************************************
-*
-* File cmemory.c ICU Heap allocation.
-* All ICU heap allocation, both for C and C++ new of ICU
-* class types, comes through these functions.
-*
-* If you have a need to replace ICU allocation, this is the
-* place to do it.
-*
-* Note that uprv_malloc(0) returns a non-NULL pointer, and
-* that a subsequent free of that pointer value is a NOP.
-*
-******************************************************************************
-*/
-#include "unicode/uclean.h"
-#include "cmemory.h"
-#include "putilimp.h"
-#include "uassert.h"
-#include <stdlib.h>
-
-/* uprv_malloc(0) returns a pointer to this read-only data. */
-static const int32_t zeroMem[] = {0, 0, 0, 0, 0, 0};
-
-/* Function Pointers for user-supplied heap functions */
-static const void *pContext;
-static UMemAllocFn *pAlloc;
-static UMemReallocFn *pRealloc;
-static UMemFreeFn *pFree;
-
-#if U_DEBUG && defined(UPRV_MALLOC_COUNT)
-#include <stdio.h>
-static int n=0;
-static long b=0;
-#endif
-
-#if U_DEBUG
-
-static char gValidMemorySink = 0;
-
-U_CAPI void uprv_checkValidMemory(const void *p, size_t n) {
- /*
- * Access the memory to ensure that it's all valid.
- * Load and save a computed value to try to ensure that the compiler
- * does not throw away the whole loop.
- * A thread analyzer might complain about un-mutexed access to gValidMemorySink
- * which is true but harmless because no one ever uses the value in gValidMemorySink.
- */
- const char *s = (const char *)p;
- char c = gValidMemorySink;
- size_t i;
- U_ASSERT(p != NULL);
- for(i = 0; i < n; ++i) {
- c ^= s[i];
- }
- gValidMemorySink = c;
-}
-
-#endif /* U_DEBUG */
-
-U_CAPI void * U_EXPORT2
-uprv_malloc(size_t s) {
-#if U_DEBUG && defined(UPRV_MALLOC_COUNT)
-#if 1
- putchar('>');
- fflush(stdout);
-#else
- fprintf(stderr,"MALLOC\t#%d\t%ul bytes\t%ul total\n", ++n,s,(b+=s)); fflush(stderr);
-#endif
-#endif
- if (s > 0) {
- if (pAlloc) {
- return (*pAlloc)(pContext, s);
- } else {
- return uprv_default_malloc(s);
- }
- } else {
- return (void *)zeroMem;
- }
-}
-
-U_CAPI void * U_EXPORT2
-uprv_realloc(void * buffer, size_t size) {
-#if U_DEBUG && defined(UPRV_MALLOC_COUNT)
- putchar('~');
- fflush(stdout);
-#endif
- if (buffer == zeroMem) {
- return uprv_malloc(size);
- } else if (size == 0) {
- if (pFree) {
- (*pFree)(pContext, buffer);
- } else {
- uprv_default_free(buffer);
- }
- return (void *)zeroMem;
- } else {
- if (pRealloc) {
- return (*pRealloc)(pContext, buffer, size);
- } else {
- return uprv_default_realloc(buffer, size);
- }
- }
-}
-
-U_CAPI void U_EXPORT2
-uprv_free(void *buffer) {
-#if U_DEBUG && defined(UPRV_MALLOC_COUNT)
- putchar('<');
- fflush(stdout);
-#endif
- if (buffer != zeroMem) {
- if (pFree) {
- (*pFree)(pContext, buffer);
- } else {
- uprv_default_free(buffer);
- }
- }
-}
-
-U_CAPI void * U_EXPORT2
-uprv_calloc(size_t num, size_t size) {
- void *mem = NULL;
- size *= num;
- mem = uprv_malloc(size);
- if (mem) {
- uprv_memset(mem, 0, size);
- }
- return mem;
-}
-
-U_CAPI void U_EXPORT2
-u_setMemoryFunctions(const void *context, UMemAllocFn *a, UMemReallocFn *r, UMemFreeFn *f, UErrorCode *status)
-{
- if (U_FAILURE(*status)) {
- return;
- }
- if (a==NULL || r==NULL || f==NULL) {
- *status = U_ILLEGAL_ARGUMENT_ERROR;
- return;
- }
- pContext = context;
- pAlloc = a;
- pRealloc = r;
- pFree = f;
-}
-
-
-U_CFUNC UBool cmemory_cleanup(void) {
- pContext = NULL;
- pAlloc = NULL;
- pRealloc = NULL;
- pFree = NULL;
- return TRUE;
-}
Added: trunk/Build/source/libs/icu/icu-src/source/common/cmemory.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/cmemory.cpp (rev 0)
+++ trunk/Build/source/libs/icu/icu-src/source/common/cmemory.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -0,0 +1,162 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+/*
+******************************************************************************
+*
+* Copyright (C) 2002-2015, International Business Machines
+* Corporation and others. All Rights Reserved.
+*
+******************************************************************************
+*
+* File cmemory.c ICU Heap allocation.
+* All ICU heap allocation, both for C and C++ new of ICU
+* class types, comes through these functions.
+*
+* If you have a need to replace ICU allocation, this is the
+* place to do it.
+*
+* Note that uprv_malloc(0) returns a non-NULL pointer, and
+* that a subsequent free of that pointer value is a NOP.
+*
+******************************************************************************
+*/
+#include "unicode/uclean.h"
+#include "cmemory.h"
+#include "putilimp.h"
+#include "uassert.h"
+#include <stdlib.h>
+
+/* uprv_malloc(0) returns a pointer to this read-only data. */
+static const int32_t zeroMem[] = {0, 0, 0, 0, 0, 0};
+
+/* Function Pointers for user-supplied heap functions */
+static const void *pContext;
+static UMemAllocFn *pAlloc;
+static UMemReallocFn *pRealloc;
+static UMemFreeFn *pFree;
+
+#if U_DEBUG && defined(UPRV_MALLOC_COUNT)
+#include <stdio.h>
+static int n=0;
+static long b=0;
+#endif
+
+#if U_DEBUG
+
+static char gValidMemorySink = 0;
+
+U_CAPI void uprv_checkValidMemory(const void *p, size_t n) {
+ /*
+ * Access the memory to ensure that it's all valid.
+ * Load and save a computed value to try to ensure that the compiler
+ * does not throw away the whole loop.
+ * A thread analyzer might complain about un-mutexed access to gValidMemorySink
+ * which is true but harmless because no one ever uses the value in gValidMemorySink.
+ */
+ const char *s = (const char *)p;
+ char c = gValidMemorySink;
+ size_t i;
+ U_ASSERT(p != NULL);
+ for(i = 0; i < n; ++i) {
+ c ^= s[i];
+ }
+ gValidMemorySink = c;
+}
+
+#endif /* U_DEBUG */
+
+U_CAPI void * U_EXPORT2
+uprv_malloc(size_t s) {
+#if U_DEBUG && defined(UPRV_MALLOC_COUNT)
+#if 1
+ putchar('>');
+ fflush(stdout);
+#else
+ fprintf(stderr,"MALLOC\t#%d\t%ul bytes\t%ul total\n", ++n,s,(b+=s)); fflush(stderr);
+#endif
+#endif
+ if (s > 0) {
+ if (pAlloc) {
+ return (*pAlloc)(pContext, s);
+ } else {
+ return uprv_default_malloc(s);
+ }
+ } else {
+ return (void *)zeroMem;
+ }
+}
+
+U_CAPI void * U_EXPORT2
+uprv_realloc(void * buffer, size_t size) {
+#if U_DEBUG && defined(UPRV_MALLOC_COUNT)
+ putchar('~');
+ fflush(stdout);
+#endif
+ if (buffer == zeroMem) {
+ return uprv_malloc(size);
+ } else if (size == 0) {
+ if (pFree) {
+ (*pFree)(pContext, buffer);
+ } else {
+ uprv_default_free(buffer);
+ }
+ return (void *)zeroMem;
+ } else {
+ if (pRealloc) {
+ return (*pRealloc)(pContext, buffer, size);
+ } else {
+ return uprv_default_realloc(buffer, size);
+ }
+ }
+}
+
+U_CAPI void U_EXPORT2
+uprv_free(void *buffer) {
+#if U_DEBUG && defined(UPRV_MALLOC_COUNT)
+ putchar('<');
+ fflush(stdout);
+#endif
+ if (buffer != zeroMem) {
+ if (pFree) {
+ (*pFree)(pContext, buffer);
+ } else {
+ uprv_default_free(buffer);
+ }
+ }
+}
+
+U_CAPI void * U_EXPORT2
+uprv_calloc(size_t num, size_t size) {
+ void *mem = NULL;
+ size *= num;
+ mem = uprv_malloc(size);
+ if (mem) {
+ uprv_memset(mem, 0, size);
+ }
+ return mem;
+}
+
+U_CAPI void U_EXPORT2
+u_setMemoryFunctions(const void *context, UMemAllocFn *a, UMemReallocFn *r, UMemFreeFn *f, UErrorCode *status)
+{
+ if (U_FAILURE(*status)) {
+ return;
+ }
+ if (a==NULL || r==NULL || f==NULL) {
+ *status = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+ pContext = context;
+ pAlloc = a;
+ pRealloc = r;
+ pFree = f;
+}
+
+
+U_CFUNC UBool cmemory_cleanup(void) {
+ pContext = NULL;
+ pAlloc = NULL;
+ pRealloc = NULL;
+ pFree = NULL;
+ return TRUE;
+}
Property changes on: trunk/Build/source/libs/icu/icu-src/source/common/cmemory.cpp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Build/source/libs/icu/icu-src/source/common/cmemory.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/cmemory.h 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/cmemory.h 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
******************************************************************************
@@ -162,7 +162,6 @@
* @param p simple pointer to an array of T items that is adopted
*/
explicit LocalMemory(T *p=NULL) : LocalPointerBase<T>(p) {}
-#if U_HAVE_RVALUE_REFERENCES
/**
* Move constructor, leaves src with isNull().
* @param src source smart pointer
@@ -170,7 +169,6 @@
LocalMemory(LocalMemory<T> &&src) U_NOEXCEPT : LocalPointerBase<T>(src.ptr) {
src.ptr=NULL;
}
-#endif
/**
* Destructor deletes the memory it owns.
*/
@@ -177,7 +175,6 @@
~LocalMemory() {
uprv_free(LocalPointerBase<T>::ptr);
}
-#if U_HAVE_RVALUE_REFERENCES
/**
* Move assignment operator, leaves src with isNull().
* The behavior is undefined if *this and src are the same object.
@@ -187,7 +184,6 @@
LocalMemory<T> &operator=(LocalMemory<T> &&src) U_NOEXCEPT {
return moveFrom(src);
}
-#endif
/**
* Move assignment, leaves src with isNull().
* The behavior is undefined if *this and src are the same object.
@@ -313,6 +309,14 @@
*/
MaybeStackArray() : ptr(stackArray), capacity(stackCapacity), needToRelease(FALSE) {}
/**
+ * Automatically allocates the heap array if the argument is larger than the stack capacity.
+ * Intended for use when an approximate capacity is known at compile time but the true
+ * capacity is not known until runtime.
+ */
+ MaybeStackArray(int32_t newCapacity) : MaybeStackArray() {
+ if (capacity < newCapacity) { resize(newCapacity); }
+ };
+ /**
* Destructor deletes the array (if owned).
*/
~MaybeStackArray() { releaseArray(); }
Modified: trunk/Build/source/libs/icu/icu-src/source/common/common.vcxproj
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/common.vcxproj 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/common.vcxproj 2018-01-12 18:35:28 UTC (rev 46290)
@@ -20,6 +20,7 @@
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}</ProjectGuid>
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
@@ -102,6 +103,7 @@
<ProgramDataBaseFileName>.\x86\Release/</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
+ <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -108,7 +110,7 @@
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <OutputFile>..\..\bin\icuuc58.dll</OutputFile>
+ <OutputFile>..\..\bin\icuuc60.dll</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<ProgramDatabaseFile>.\..\..\lib\icuuc.pdb</ProgramDatabaseFile>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
@@ -143,6 +145,7 @@
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -149,7 +152,7 @@
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <OutputFile>..\..\bin\icuuc58d.dll</OutputFile>
+ <OutputFile>..\..\bin\icuuc60d.dll</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>.\..\..\lib\icuucd.pdb</ProgramDatabaseFile>
@@ -181,6 +184,7 @@
<ProgramDataBaseFileName>.\x64\Release/</ProgramDataBaseFileName>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
+ <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -187,7 +191,7 @@
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <OutputFile>..\..\bin64\icuuc58.dll</OutputFile>
+ <OutputFile>..\..\bin64\icuuc60.dll</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<ProgramDatabaseFile>.\..\..\lib64\icuuc.pdb</ProgramDatabaseFile>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
@@ -220,6 +224,7 @@
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@@ -226,7 +231,7 @@
<Culture>0x0409</Culture>
</ResourceCompile>
<Link>
- <OutputFile>..\..\bin64\icuuc58d.dll</OutputFile>
+ <OutputFile>..\..\bin64\icuuc60d.dll</OutputFile>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>.\..\..\lib64\icuucd.pdb</ProgramDatabaseFile>
@@ -237,11 +242,11 @@
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="filteredbrk.cpp" />
- <ClCompile Include="ubidi.c" />
- <ClCompile Include="ubiditransform.c" />
- <ClCompile Include="ubidi_props.c" />
- <ClCompile Include="ubidiln.c" />
- <ClCompile Include="ubidiwrt.c" />
+ <ClCompile Include="ubidi.cpp" />
+ <ClCompile Include="ubiditransform.cpp" />
+ <ClCompile Include="ubidi_props.cpp" />
+ <ClCompile Include="ubidiln.cpp" />
+ <ClCompile Include="ubidiwrt.cpp" />
<ClCompile Include="uloc_keytype.cpp" />
<ClCompile Include="ushape.cpp" />
<ClCompile Include="brkeng.cpp">
@@ -263,6 +268,8 @@
</ClCompile>
<ClCompile Include="rbbitblb.cpp">
</ClCompile>
+ <ClCompile Include="rbbi_cache.cpp">
+ </ClCompile>
<ClCompile Include="dictionarydata.cpp" />
<ClCompile Include="ubrk.cpp" />
<ClCompile Include="ucol_swp.cpp">
@@ -271,12 +278,12 @@
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\i18n;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\i18n;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
- <ClCompile Include="propsvec.c" />
- <ClCompile Include="uarrsort.c" />
- <ClCompile Include="uenum.c" />
- <ClCompile Include="uhash.c" />
+ <ClCompile Include="propsvec.cpp" />
+ <ClCompile Include="uarrsort.cpp" />
+ <ClCompile Include="uenum.cpp" />
+ <ClCompile Include="uhash.cpp" />
<ClCompile Include="uhash_us.cpp" />
- <ClCompile Include="ulist.c" />
+ <ClCompile Include="ulist.cpp" />
<ClCompile Include="ustack.cpp" />
<ClCompile Include="ustrenum.cpp" />
<ClCompile Include="utrie.cpp" />
@@ -286,8 +293,8 @@
<ClCompile Include="uvectr32.cpp" />
<ClCompile Include="uvectr64.cpp" />
<ClCompile Include="errorcode.cpp" />
- <ClCompile Include="icudataver.c" />
- <ClCompile Include="locmap.c">
+ <ClCompile Include="icudataver.cpp" />
+ <ClCompile Include="locmap.cpp">
<DisableLanguageExtensions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</DisableLanguageExtensions>
<DisableLanguageExtensions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DisableLanguageExtensions>
<DisableLanguageExtensions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</DisableLanguageExtensions>
@@ -299,7 +306,7 @@
<DisableLanguageExtensions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</DisableLanguageExtensions>
<DisableLanguageExtensions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DisableLanguageExtensions>
</ClCompile>
- <ClCompile Include="umath.c" />
+ <ClCompile Include="umath.cpp" />
<ClCompile Include="umutex.cpp">
<DisableLanguageExtensions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</DisableLanguageExtensions>
<DisableLanguageExtensions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DisableLanguageExtensions>
@@ -306,52 +313,52 @@
<DisableLanguageExtensions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</DisableLanguageExtensions>
<DisableLanguageExtensions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DisableLanguageExtensions>
</ClCompile>
- <ClCompile Include="utrace.c" />
- <ClCompile Include="utypes.c" />
- <ClCompile Include="wintz.c">
+ <ClCompile Include="utrace.cpp" />
+ <ClCompile Include="utypes.cpp" />
+ <ClCompile Include="wintz.cpp">
<DisableLanguageExtensions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</DisableLanguageExtensions>
<DisableLanguageExtensions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DisableLanguageExtensions>
<DisableLanguageExtensions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</DisableLanguageExtensions>
<DisableLanguageExtensions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</DisableLanguageExtensions>
</ClCompile>
- <ClCompile Include="ucnv.c" />
+ <ClCompile Include="ucnv.cpp" />
<ClCompile Include="ucnv2022.cpp" />
<ClCompile Include="ucnv_bld.cpp">
</ClCompile>
- <ClCompile Include="ucnv_cb.c" />
- <ClCompile Include="ucnv_cnv.c" />
- <ClCompile Include="ucnv_ct.c" />
- <ClCompile Include="ucnv_err.c" />
+ <ClCompile Include="ucnv_cb.cpp" />
+ <ClCompile Include="ucnv_cnv.cpp" />
+ <ClCompile Include="ucnv_ct.cpp" />
+ <ClCompile Include="ucnv_err.cpp" />
<ClCompile Include="ucnv_ext.cpp" />
<ClCompile Include="ucnv_io.cpp">
</ClCompile>
- <ClCompile Include="ucnv_lmb.c" />
- <ClCompile Include="ucnv_set.c" />
- <ClCompile Include="ucnv_u16.c" />
- <ClCompile Include="ucnv_u32.c" />
- <ClCompile Include="ucnv_u7.c" />
- <ClCompile Include="ucnv_u8.c" />
+ <ClCompile Include="ucnv_lmb.cpp" />
+ <ClCompile Include="ucnv_set.cpp" />
+ <ClCompile Include="ucnv_u16.cpp" />
+ <ClCompile Include="ucnv_u32.cpp" />
+ <ClCompile Include="ucnv_u7.cpp" />
+ <ClCompile Include="ucnv_u8.cpp" />
<ClCompile Include="ucnvbocu.cpp" />
- <ClCompile Include="ucnvdisp.c" />
- <ClCompile Include="ucnvhz.c" />
- <ClCompile Include="ucnvisci.c" />
- <ClCompile Include="ucnvlat1.c" />
+ <ClCompile Include="ucnvdisp.cpp" />
+ <ClCompile Include="ucnvhz.cpp" />
+ <ClCompile Include="ucnvisci.cpp" />
+ <ClCompile Include="ucnvlat1.cpp" />
<ClCompile Include="ucnvmbcs.cpp" />
- <ClCompile Include="ucnvscsu.c" />
+ <ClCompile Include="ucnvscsu.cpp" />
<ClCompile Include="ucnvsel.cpp">
</ClCompile>
- <ClCompile Include="cmemory.c" />
+ <ClCompile Include="cmemory.cpp" />
<ClCompile Include="ucln_cmn.cpp">
<DisableLanguageExtensions>false</DisableLanguageExtensions>
</ClCompile>
- <ClCompile Include="ucmndata.c" />
+ <ClCompile Include="ucmndata.cpp" />
<ClCompile Include="udata.cpp" />
- <ClCompile Include="udatamem.c" />
- <ClCompile Include="udataswp.c" />
+ <ClCompile Include="udatamem.cpp" />
+ <ClCompile Include="udataswp.cpp" />
<ClCompile Include="uinit.cpp">
<DisableLanguageExtensions>false</DisableLanguageExtensions>
</ClCompile>
- <ClCompile Include="umapfile.c">
+ <ClCompile Include="umapfile.cpp">
<DisableLanguageExtensions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</DisableLanguageExtensions>
<DisableLanguageExtensions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</DisableLanguageExtensions>
<DisableLanguageExtensions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</DisableLanguageExtensions>
@@ -360,7 +367,7 @@
<ClCompile Include="uobject.cpp" />
<ClCompile Include="dtintrv.cpp" />
<ClCompile Include="parsepos.cpp" />
- <ClCompile Include="ustrfmt.c" />
+ <ClCompile Include="ustrfmt.cpp" />
<ClCompile Include="util.cpp" />
<ClCompile Include="util_props.cpp" />
<ClCompile Include="punycode.cpp" />
@@ -380,10 +387,10 @@
<ClCompile Include="resbund.cpp">
</ClCompile>
<ClCompile Include="resbund_cnv.cpp" />
- <ClCompile Include="ucat.c" />
+ <ClCompile Include="ucat.cpp" />
<ClCompile Include="uloc.cpp" />
- <ClCompile Include="uloc_tag.c" />
- <ClCompile Include="ures_cnv.c" />
+ <ClCompile Include="uloc_tag.cpp" />
+ <ClCompile Include="ures_cnv.cpp" />
<ClCompile Include="uresbund.cpp" />
<ClCompile Include="uresdata.cpp" />
<ClCompile Include="resource.cpp" />
@@ -405,7 +412,7 @@
<ClCompile Include="ruleiter.cpp" />
<ClCompile Include="ucase.cpp">
</ClCompile>
- <ClCompile Include="uchar.c" />
+ <ClCompile Include="uchar.cpp" />
<ClCompile Include="unames.cpp" />
<ClCompile Include="unifiedcache.cpp">
<DisableLanguageExtensions>false</DisableLanguageExtensions>
@@ -417,8 +424,8 @@
<ClCompile Include="uniset_props.cpp" />
<ClCompile Include="unisetspan.cpp" />
<ClCompile Include="uprops.cpp" />
- <ClCompile Include="usc_impl.c" />
- <ClCompile Include="uscript.c" />
+ <ClCompile Include="usc_impl.cpp" />
+ <ClCompile Include="uscript.cpp" />
<ClCompile Include="uscript_props.cpp" />
<ClCompile Include="uset.cpp" />
<ClCompile Include="uset_props.cpp" />
@@ -440,6 +447,7 @@
</ClCompile>
<ClCompile Include="usprep.cpp" />
<ClCompile Include="appendable.cpp" />
+ <ClCompile Include="bytesinkutil.cpp" />
<ClCompile Include="bytestream.cpp" />
<ClCompile Include="bytestrie.cpp" />
<ClCompile Include="bytestriebuilder.cpp" />
@@ -446,9 +454,10 @@
<ClCompile Include="bytestrieiterator.cpp" />
<ClCompile Include="chariter.cpp" />
<ClCompile Include="charstr.cpp" />
- <ClCompile Include="cstring.c" />
+ <ClCompile Include="cstring.cpp" />
<ClCompile Include="cstr.cpp" />
- <ClCompile Include="cwchar.c" />
+ <ClCompile Include="cwchar.cpp" />
+ <ClCompile Include="edits.cpp" />
<ClCompile Include="messagepattern.cpp" />
<ClCompile Include="schriter.cpp" />
<ClCompile Include="stringpiece.cpp" />
@@ -460,7 +469,7 @@
<ClCompile Include="ucharstriebuilder.cpp" />
<ClCompile Include="ucharstrieiterator.cpp" />
<ClCompile Include="uchriter.cpp" />
- <ClCompile Include="uinvchar.c" />
+ <ClCompile Include="uinvchar.cpp" />
<ClCompile Include="uiter.cpp" />
<ClCompile Include="unistr.cpp" />
<ClCompile Include="unistr_case.cpp" />
@@ -476,7 +485,7 @@
<ClCompile Include="ustring.cpp" />
<ClCompile Include="ustrtrns.cpp" />
<ClCompile Include="utext.cpp" />
- <ClCompile Include="utf_impl.c" />
+ <ClCompile Include="utf_impl.cpp" />
<ClCompile Include="listformatter.cpp" />
<ClCompile Include="ulistformatter.cpp" />
</ItemGroup>
@@ -566,6 +575,7 @@
<ClInclude Include="rbbiscan.h" />
<ClInclude Include="rbbisetb.h" />
<ClInclude Include="rbbitblb.h" />
+ <ClInclude Include="rbbi_cache.h" />
<ClInclude Include="dictionarydata.h" />
<CustomBuild Include="unicode\ubrk.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy "%(FullPath)" ..\..\include\unicode
@@ -1472,6 +1482,7 @@
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
</CustomBuild>
+ <ClInclude Include="bytesinkutil.h" />
<CustomBuild Include="unicode\bytestream.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy "%(FullPath)" ..\..\include\unicode
</Command>
@@ -1514,6 +1525,34 @@
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
</CustomBuild>
+ <CustomBuild Include="unicode\casemap.h">
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy "%(FullPath)" ..\..\include\unicode
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy "%(FullPath)" ..\..\include\unicode
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy "%(FullPath)" ..\..\include\unicode
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy "%(FullPath)" ..\..\include\unicode
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
+ </CustomBuild>
+ <CustomBuild Include="unicode\char16ptr.h">
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy "%(FullPath)" ..\..\include\unicode
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy "%(FullPath)" ..\..\include\unicode
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy "%(FullPath)" ..\..\include\unicode
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy "%(FullPath)" ..\..\include\unicode
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
+ </CustomBuild>
<CustomBuild Include="unicode\chariter.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy "%(FullPath)" ..\..\include\unicode
</Command>
@@ -1532,6 +1571,20 @@
<ClInclude Include="cstring.h" />
<ClInclude Include="cstr.h" />
<ClInclude Include="cwchar.h" />
+ <CustomBuild Include="unicode\edits.h">
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy "%(FullPath)" ..\..\include\unicode
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy "%(FullPath)" ..\..\include\unicode
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy "%(FullPath)" ..\..\include\unicode
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy "%(FullPath)" ..\..\include\unicode
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
+ </CustomBuild>
<CustomBuild Include="unicode\messagepattern.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy "%(FullPath)" ..\..\include\unicode
</Command>
@@ -1616,6 +1669,7 @@
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
</CustomBuild>
+ <ClInclude Include="ucasemap_imp.h" />
<CustomBuild Include="unicode\ucharstrie.h">
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy "%(FullPath)" ..\..\include\unicode
</Command>
@@ -1843,6 +1897,20 @@
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
</CustomBuild>
+ <CustomBuild Include="unicode\stringoptions.h">
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">copy "%(FullPath)" ..\..\include\unicode
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">copy "%(FullPath)" ..\..\include\unicode
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">copy "%(FullPath)" ..\..\include\unicode
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">copy "%(FullPath)" ..\..\include\unicode
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\include\unicode\%(Filename)%(Extension);%(Outputs)</Outputs>
+ </CustomBuild>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="common.rc" />
@@ -1856,4 +1924,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
-</Project>
\ No newline at end of file
+</Project>
Modified: trunk/Build/source/libs/icu/icu-src/source/common/common.vcxproj.filters
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/common.vcxproj.filters 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/common.vcxproj.filters 2018-01-12 18:35:28 UTC (rev 46290)
@@ -49,16 +49,16 @@
</Filter>
</ItemGroup>
<ItemGroup>
- <ClCompile Include="ubidi.c">
+ <ClCompile Include="ubidi.cpp">
<Filter>bidi</Filter>
</ClCompile>
- <ClCompile Include="ubidi_props.c">
+ <ClCompile Include="ubidi_props.cpp">
<Filter>bidi</Filter>
</ClCompile>
- <ClCompile Include="ubidiln.c">
+ <ClCompile Include="ubidiln.cpp">
<Filter>bidi</Filter>
</ClCompile>
- <ClCompile Include="ubidiwrt.c">
+ <ClCompile Include="ubidiwrt.cpp">
<Filter>bidi</Filter>
</ClCompile>
<ClCompile Include="ushape.cpp">
@@ -97,6 +97,9 @@
<ClCompile Include="rbbitblb.cpp">
<Filter>break iteration</Filter>
</ClCompile>
+ <ClCompile Include="rbbi_cache.cpp">
+ <Filter>break iteration</Filter>
+ </ClCompile>
<ClCompile Include="ubrk.cpp">
<Filter>break iteration</Filter>
</ClCompile>
@@ -106,22 +109,22 @@
<ClCompile Include="pluralmap.cpp">
<Filter>collections</Filter>
</ClCompile>
- <ClCompile Include="propsvec.c">
+ <ClCompile Include="propsvec.cpp">
<Filter>collections</Filter>
</ClCompile>
- <ClCompile Include="uarrsort.c">
+ <ClCompile Include="uarrsort.cpp">
<Filter>collections</Filter>
</ClCompile>
- <ClCompile Include="uenum.c">
+ <ClCompile Include="uenum.cpp">
<Filter>collections</Filter>
</ClCompile>
- <ClCompile Include="uhash.c">
+ <ClCompile Include="uhash.cpp">
<Filter>collections</Filter>
</ClCompile>
<ClCompile Include="uhash_us.cpp">
<Filter>collections</Filter>
</ClCompile>
- <ClCompile Include="ulist.c">
+ <ClCompile Include="ulist.cpp">
<Filter>collections</Filter>
</ClCompile>
<ClCompile Include="unifiedcache.cpp">
@@ -154,31 +157,31 @@
<ClCompile Include="errorcode.cpp">
<Filter>configuration</Filter>
</ClCompile>
- <ClCompile Include="icudataver.c">
+ <ClCompile Include="icudataver.cpp">
<Filter>configuration</Filter>
</ClCompile>
- <ClCompile Include="locmap.c">
+ <ClCompile Include="locmap.cpp">
<Filter>configuration</Filter>
</ClCompile>
<ClCompile Include="putil.cpp">
<Filter>configuration</Filter>
</ClCompile>
- <ClCompile Include="umath.c">
+ <ClCompile Include="umath.cpp">
<Filter>configuration</Filter>
</ClCompile>
<ClCompile Include="umutex.cpp">
<Filter>configuration</Filter>
</ClCompile>
- <ClCompile Include="utrace.c">
+ <ClCompile Include="utrace.cpp">
<Filter>configuration</Filter>
</ClCompile>
- <ClCompile Include="utypes.c">
+ <ClCompile Include="utypes.cpp">
<Filter>configuration</Filter>
</ClCompile>
- <ClCompile Include="wintz.c">
+ <ClCompile Include="wintz.cpp">
<Filter>configuration</Filter>
</ClCompile>
- <ClCompile Include="ucnv.c">
+ <ClCompile Include="ucnv.cpp">
<Filter>conversion</Filter>
</ClCompile>
<ClCompile Include="ucnv2022.cpp">
@@ -187,13 +190,13 @@
<ClCompile Include="ucnv_bld.cpp">
<Filter>conversion</Filter>
</ClCompile>
- <ClCompile Include="ucnv_cb.c">
+ <ClCompile Include="ucnv_cb.cpp">
<Filter>conversion</Filter>
</ClCompile>
- <ClCompile Include="ucnv_cnv.c">
+ <ClCompile Include="ucnv_cnv.cpp">
<Filter>conversion</Filter>
</ClCompile>
- <ClCompile Include="ucnv_err.c">
+ <ClCompile Include="ucnv_err.cpp">
<Filter>conversion</Filter>
</ClCompile>
<ClCompile Include="ucnv_ext.cpp">
@@ -202,49 +205,49 @@
<ClCompile Include="ucnv_io.cpp">
<Filter>conversion</Filter>
</ClCompile>
- <ClCompile Include="ucnv_lmb.c">
+ <ClCompile Include="ucnv_lmb.cpp">
<Filter>conversion</Filter>
</ClCompile>
- <ClCompile Include="ucnv_set.c">
+ <ClCompile Include="ucnv_set.cpp">
<Filter>conversion</Filter>
</ClCompile>
- <ClCompile Include="ucnv_u16.c">
+ <ClCompile Include="ucnv_u16.cpp">
<Filter>conversion</Filter>
</ClCompile>
- <ClCompile Include="ucnv_u32.c">
+ <ClCompile Include="ucnv_u32.cpp">
<Filter>conversion</Filter>
</ClCompile>
- <ClCompile Include="ucnv_u7.c">
+ <ClCompile Include="ucnv_u7.cpp">
<Filter>conversion</Filter>
</ClCompile>
- <ClCompile Include="ucnv_u8.c">
+ <ClCompile Include="ucnv_u8.cpp">
<Filter>conversion</Filter>
</ClCompile>
<ClCompile Include="ucnvbocu.cpp">
<Filter>conversion</Filter>
</ClCompile>
- <ClCompile Include="ucnvdisp.c">
+ <ClCompile Include="ucnvdisp.cpp">
<Filter>conversion</Filter>
</ClCompile>
- <ClCompile Include="ucnvhz.c">
+ <ClCompile Include="ucnvhz.cpp">
<Filter>conversion</Filter>
</ClCompile>
- <ClCompile Include="ucnvisci.c">
+ <ClCompile Include="ucnvisci.cpp">
<Filter>conversion</Filter>
</ClCompile>
- <ClCompile Include="ucnvlat1.c">
+ <ClCompile Include="ucnvlat1.cpp">
<Filter>conversion</Filter>
</ClCompile>
<ClCompile Include="ucnvmbcs.cpp">
<Filter>conversion</Filter>
</ClCompile>
- <ClCompile Include="ucnvscsu.c">
+ <ClCompile Include="ucnvscsu.cpp">
<Filter>conversion</Filter>
</ClCompile>
<ClCompile Include="ucnvsel.cpp">
<Filter>conversion</Filter>
</ClCompile>
- <ClCompile Include="cmemory.c">
+ <ClCompile Include="cmemory.cpp">
<Filter>data & memory</Filter>
</ClCompile>
<ClCompile Include="sharedobject.cpp">
@@ -253,22 +256,22 @@
<ClCompile Include="ucln_cmn.cpp">
<Filter>data & memory</Filter>
</ClCompile>
- <ClCompile Include="ucmndata.c">
+ <ClCompile Include="ucmndata.cpp">
<Filter>data & memory</Filter>
</ClCompile>
<ClCompile Include="udata.cpp">
<Filter>data & memory</Filter>
</ClCompile>
- <ClCompile Include="udatamem.c">
+ <ClCompile Include="udatamem.cpp">
<Filter>data & memory</Filter>
</ClCompile>
- <ClCompile Include="udataswp.c">
+ <ClCompile Include="udataswp.cpp">
<Filter>data & memory</Filter>
</ClCompile>
<ClCompile Include="uinit.cpp">
<Filter>data & memory</Filter>
</ClCompile>
- <ClCompile Include="umapfile.c">
+ <ClCompile Include="umapfile.cpp">
<Filter>data & memory</Filter>
</ClCompile>
<ClCompile Include="uobject.cpp">
@@ -289,7 +292,7 @@
<ClCompile Include="ucurr.cpp">
<Filter>formatting</Filter>
</ClCompile>
- <ClCompile Include="ustrfmt.c">
+ <ClCompile Include="ustrfmt.cpp">
<Filter>formatting</Filter>
</ClCompile>
<ClCompile Include="util.cpp">
@@ -334,16 +337,16 @@
<ClCompile Include="resbund_cnv.cpp">
<Filter>locales & resources</Filter>
</ClCompile>
- <ClCompile Include="ucat.c">
+ <ClCompile Include="ucat.cpp">
<Filter>locales & resources</Filter>
</ClCompile>
<ClCompile Include="uloc.cpp">
<Filter>locales & resources</Filter>
</ClCompile>
- <ClCompile Include="uloc_tag.c">
+ <ClCompile Include="uloc_tag.cpp">
<Filter>locales & resources</Filter>
</ClCompile>
- <ClCompile Include="ures_cnv.c">
+ <ClCompile Include="ures_cnv.cpp">
<Filter>locales & resources</Filter>
</ClCompile>
<ClCompile Include="uresbund.cpp">
@@ -391,7 +394,7 @@
<ClCompile Include="ucase.cpp">
<Filter>properties & sets</Filter>
</ClCompile>
- <ClCompile Include="uchar.c">
+ <ClCompile Include="uchar.cpp">
<Filter>properties & sets</Filter>
</ClCompile>
<ClCompile Include="unames.cpp">
@@ -418,10 +421,10 @@
<ClCompile Include="uprops.cpp">
<Filter>properties & sets</Filter>
</ClCompile>
- <ClCompile Include="usc_impl.c">
+ <ClCompile Include="usc_impl.cpp">
<Filter>properties & sets</Filter>
</ClCompile>
- <ClCompile Include="uscript.c">
+ <ClCompile Include="uscript.cpp">
<Filter>properties & sets</Filter>
</ClCompile>
<ClCompile Include="uscript_props.cpp">
@@ -460,6 +463,9 @@
<ClCompile Include="usprep.cpp">
<Filter>sprep</Filter>
</ClCompile>
+ <ClCompile Include="bytesinkutil.cpp">
+ <Filter>strings</Filter>
+ </ClCompile>
<ClCompile Include="bytestream.cpp">
<Filter>strings</Filter>
</ClCompile>
@@ -469,15 +475,18 @@
<ClCompile Include="charstr.cpp">
<Filter>strings</Filter>
</ClCompile>
- <ClCompile Include="cstring.c">
+ <ClCompile Include="cstring.cpp">
<Filter>strings</Filter>
</ClCompile>
<ClCompile Include="cstr.cpp">
<Filter>strings</Filter>
</ClCompile>
- <ClCompile Include="cwchar.c">
+ <ClCompile Include="cwchar.cpp">
<Filter>strings</Filter>
</ClCompile>
+ <ClCompile Include="edits.cpp">
+ <Filter>strings</Filter>
+ </ClCompile>
<ClCompile Include="schriter.cpp">
<Filter>strings</Filter>
</ClCompile>
@@ -493,7 +502,7 @@
<ClCompile Include="uchriter.cpp">
<Filter>strings</Filter>
</ClCompile>
- <ClCompile Include="uinvchar.c">
+ <ClCompile Include="uinvchar.cpp">
<Filter>strings</Filter>
</ClCompile>
<ClCompile Include="uiter.cpp">
@@ -541,7 +550,7 @@
<ClCompile Include="utext.cpp">
<Filter>strings</Filter>
</ClCompile>
- <ClCompile Include="utf_impl.c">
+ <ClCompile Include="utf_impl.cpp">
<Filter>strings</Filter>
</ClCompile>
<ClCompile Include="bytestrie.cpp">
@@ -568,7 +577,7 @@
<ClCompile Include="dictionarydata.cpp">
<Filter>break iteration</Filter>
</ClCompile>
- <ClCompile Include="ucnv_ct.c">
+ <ClCompile Include="ucnv_ct.cpp">
<Filter>conversion</Filter>
</ClCompile>
<ClCompile Include="ucharstrie.cpp">
@@ -595,7 +604,7 @@
<ClCompile Include="icuplug.cpp">
<Filter>registration</Filter>
</ClCompile>
- <ClCompile Include="ubiditransform.c">
+ <ClCompile Include="ubiditransform.cpp">
<Filter>bidi</Filter>
</ClCompile>
</ItemGroup>
@@ -633,6 +642,9 @@
<ClInclude Include="rbbitblb.h">
<Filter>break iteration</Filter>
</ClInclude>
+ <ClInclude Include="rbbi_cache.h">
+ <Filter>break iteration</Filter>
+ </ClInclude>
<ClInclude Include="ubrkimpl.h">
<Filter>break iteration</Filter>
</ClInclude>
@@ -858,6 +870,9 @@
<ClInclude Include="sprpimpl.h">
<Filter>sprep</Filter>
</ClInclude>
+ <ClInclude Include="bytesinkutil.h">
+ <Filter>strings</Filter>
+ </ClInclude>
<ClInclude Include="charstr.h">
<Filter>strings</Filter>
</ClInclude>
@@ -870,6 +885,9 @@
<ClInclude Include="cwchar.h">
<Filter>strings</Filter>
</ClInclude>
+ <ClInclude Include="ucasemap_imp.h">
+ <Filter>strings</Filter>
+ </ClInclude>
<ClInclude Include="uinvchar.h">
<Filter>strings</Filter>
</ClInclude>
@@ -1096,9 +1114,18 @@
<CustomBuild Include="unicode\bytestream.h">
<Filter>strings</Filter>
</CustomBuild>
+ <CustomBuild Include="unicode\casemap.h">
+ <Filter>strings</Filter>
+ </CustomBuild>
+ <CustomBuild Include="unicode\char16ptr.h">
+ <Filter>strings</Filter>
+ </CustomBuild>
<CustomBuild Include="unicode\chariter.h">
<Filter>strings</Filter>
</CustomBuild>
+ <CustomBuild Include="unicode\edits.h">
+ <Filter>strings</Filter>
+ </CustomBuild>
<CustomBuild Include="unicode\rep.h">
<Filter>strings</Filter>
</CustomBuild>
@@ -1180,5 +1207,8 @@
<CustomBuild Include="unicode\stringtriebuilder.h">
<Filter>collections</Filter>
</CustomBuild>
+ <CustomBuild Include="unicode\stringoptions.h">
+ <Filter>strings</Filter>
+ </CustomBuild>
</ItemGroup>
</Project>
\ No newline at end of file
Added: trunk/Build/source/libs/icu/icu-src/source/common/common_uwp.vcxproj
===================================================================
(Binary files differ)
Index: trunk/Build/source/libs/icu/icu-src/source/common/common_uwp.vcxproj
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/common_uwp.vcxproj 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/common_uwp.vcxproj 2018-01-12 18:35:28 UTC (rev 46290)
Property changes on: trunk/Build/source/libs/icu/icu-src/source/common/common_uwp.vcxproj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/xml
\ No newline at end of property
Modified: trunk/Build/source/libs/icu/icu-src/source/common/cpputils.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/cpputils.h 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/cpputils.h 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
******************************************************************************
@@ -8,7 +8,7 @@
*
******************************************************************************
* file name: cpputils.h
-* encoding: US-ASCII
+* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*/
Modified: trunk/Build/source/libs/icu/icu-src/source/common/cstr.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/cstr.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/cstr.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
Modified: trunk/Build/source/libs/icu/icu-src/source/common/cstr.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/cstr.h 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/cstr.h 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
******************************************************************************
Deleted: trunk/Build/source/libs/icu/icu-src/source/common/cstring.c
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/cstring.c 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/cstring.c 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,341 +0,0 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-******************************************************************************
-*
-* Copyright (C) 1997-2011, International Business Machines
-* Corporation and others. All Rights Reserved.
-*
-******************************************************************************
-*
-* File CSTRING.C
-*
-* @author Helena Shih
-*
-* Modification History:
-*
-* Date Name Description
-* 6/18/98 hshih Created
-* 09/08/98 stephen Added include for ctype, for Mac Port
-* 11/15/99 helena Integrated S/390 IEEE changes.
-******************************************************************************
-*/
-
-
-
-#include <stdlib.h>
-#include <stdio.h>
-#include "unicode/utypes.h"
-#include "cmemory.h"
-#include "cstring.h"
-#include "uassert.h"
-
-/*
- * We hardcode case conversion for invariant characters to match our expectation
- * and the compiler execution charset.
- * This prevents problems on systems
- * - with non-default casing behavior, like Turkish system locales where
- * tolower('I') maps to dotless i and toupper('i') maps to dotted I
- * - where there are no lowercase Latin characters at all, or using different
- * codes (some old EBCDIC codepages)
- *
- * This works because the compiler usually runs on a platform where the execution
- * charset includes all of the invariant characters at their expected
- * code positions, so that the char * string literals in ICU code match
- * the char literals here.
- *
- * Note that the set of lowercase Latin letters is discontiguous in EBCDIC
- * and the set of uppercase Latin letters is discontiguous as well.
- */
-
-U_CAPI UBool U_EXPORT2
-uprv_isASCIILetter(char c) {
-#if U_CHARSET_FAMILY==U_EBCDIC_FAMILY
- return
- ('a'<=c && c<='i') || ('j'<=c && c<='r') || ('s'<=c && c<='z') ||
- ('A'<=c && c<='I') || ('J'<=c && c<='R') || ('S'<=c && c<='Z');
-#else
- return ('a'<=c && c<='z') || ('A'<=c && c<='Z');
-#endif
-}
-
-U_CAPI char U_EXPORT2
-uprv_toupper(char c) {
-#if U_CHARSET_FAMILY==U_EBCDIC_FAMILY
- if(('a'<=c && c<='i') || ('j'<=c && c<='r') || ('s'<=c && c<='z')) {
- c=(char)(c+('A'-'a'));
- }
-#else
- if('a'<=c && c<='z') {
- c=(char)(c+('A'-'a'));
- }
-#endif
- return c;
-}
-
-
-#if 0
-/*
- * Commented out because cstring.h defines uprv_tolower() to be
- * the same as either uprv_asciitolower() or uprv_ebcdictolower()
- * to reduce the amount of code to cover with tests.
- *
- * Note that this uprv_tolower() definition is likely to work for most
- * charset families, not just ASCII and EBCDIC, because its #else branch
- * is written generically.
- */
-U_CAPI char U_EXPORT2
-uprv_tolower(char c) {
-#if U_CHARSET_FAMILY==U_EBCDIC_FAMILY
- if(('A'<=c && c<='I') || ('J'<=c && c<='R') || ('S'<=c && c<='Z')) {
- c=(char)(c+('a'-'A'));
- }
-#else
- if('A'<=c && c<='Z') {
- c=(char)(c+('a'-'A'));
- }
-#endif
- return c;
-}
-#endif
-
-U_CAPI char U_EXPORT2
-uprv_asciitolower(char c) {
- if(0x41<=c && c<=0x5a) {
- c=(char)(c+0x20);
- }
- return c;
-}
-
-U_CAPI char U_EXPORT2
-uprv_ebcdictolower(char c) {
- if( (0xc1<=(uint8_t)c && (uint8_t)c<=0xc9) ||
- (0xd1<=(uint8_t)c && (uint8_t)c<=0xd9) ||
- (0xe2<=(uint8_t)c && (uint8_t)c<=0xe9)
- ) {
- c=(char)(c-0x40);
- }
- return c;
-}
-
-
-U_CAPI char* U_EXPORT2
-T_CString_toLowerCase(char* str)
-{
- char* origPtr = str;
-
- if (str) {
- do
- *str = (char)uprv_tolower(*str);
- while (*(str++));
- }
-
- return origPtr;
-}
-
-U_CAPI char* U_EXPORT2
-T_CString_toUpperCase(char* str)
-{
- char* origPtr = str;
-
- if (str) {
- do
- *str = (char)uprv_toupper(*str);
- while (*(str++));
- }
-
- return origPtr;
-}
-
-/*
- * Takes a int32_t and fills in a char* string with that number "radix"-based.
- * Does not handle negative values (makes an empty string for them).
- * Writes at most 12 chars ("-2147483647" plus NUL).
- * Returns the length of the string (not including the NUL).
- */
-U_CAPI int32_t U_EXPORT2
-T_CString_integerToString(char* buffer, int32_t v, int32_t radix)
-{
- char tbuf[30];
- int32_t tbx = sizeof(tbuf);
- uint8_t digit;
- int32_t length = 0;
- uint32_t uval;
-
- U_ASSERT(radix>=2 && radix<=16);
- uval = (uint32_t) v;
- if(v<0 && radix == 10) {
- /* Only in base 10 do we conside numbers to be signed. */
- uval = (uint32_t)(-v);
- buffer[length++] = '-';
- }
-
- tbx = sizeof(tbuf)-1;
- tbuf[tbx] = 0; /* We are generating the digits backwards. Null term the end. */
- do {
- digit = (uint8_t)(uval % radix);
- tbuf[--tbx] = (char)(T_CString_itosOffset(digit));
- uval = uval / radix;
- } while (uval != 0);
-
- /* copy converted number into user buffer */
- uprv_strcpy(buffer+length, tbuf+tbx);
- length += sizeof(tbuf) - tbx -1;
- return length;
-}
-
-
-
-/*
- * Takes a int64_t and fills in a char* string with that number "radix"-based.
- * Writes at most 21: chars ("-9223372036854775807" plus NUL).
- * Returns the length of the string, not including the terminating NULL.
- */
-U_CAPI int32_t U_EXPORT2
-T_CString_int64ToString(char* buffer, int64_t v, uint32_t radix)
-{
- char tbuf[30];
- int32_t tbx = sizeof(tbuf);
- uint8_t digit;
- int32_t length = 0;
- uint64_t uval;
-
- U_ASSERT(radix>=2 && radix<=16);
- uval = (uint64_t) v;
- if(v<0 && radix == 10) {
- /* Only in base 10 do we conside numbers to be signed. */
- uval = (uint64_t)(-v);
- buffer[length++] = '-';
- }
-
- tbx = sizeof(tbuf)-1;
- tbuf[tbx] = 0; /* We are generating the digits backwards. Null term the end. */
- do {
- digit = (uint8_t)(uval % radix);
- tbuf[--tbx] = (char)(T_CString_itosOffset(digit));
- uval = uval / radix;
- } while (uval != 0);
-
- /* copy converted number into user buffer */
- uprv_strcpy(buffer+length, tbuf+tbx);
- length += sizeof(tbuf) - tbx -1;
- return length;
-}
-
-
-U_CAPI int32_t U_EXPORT2
-T_CString_stringToInteger(const char *integerString, int32_t radix)
-{
- char *end;
- return uprv_strtoul(integerString, &end, radix);
-
-}
-
-U_CAPI int U_EXPORT2
-uprv_stricmp(const char *str1, const char *str2) {
- if(str1==NULL) {
- if(str2==NULL) {
- return 0;
- } else {
- return -1;
- }
- } else if(str2==NULL) {
- return 1;
- } else {
- /* compare non-NULL strings lexically with lowercase */
- int rc;
- unsigned char c1, c2;
-
- for(;;) {
- c1=(unsigned char)*str1;
- c2=(unsigned char)*str2;
- if(c1==0) {
- if(c2==0) {
- return 0;
- } else {
- return -1;
- }
- } else if(c2==0) {
- return 1;
- } else {
- /* compare non-zero characters with lowercase */
- rc=(int)(unsigned char)uprv_tolower(c1)-(int)(unsigned char)uprv_tolower(c2);
- if(rc!=0) {
- return rc;
- }
- }
- ++str1;
- ++str2;
- }
- }
-}
-
-U_CAPI int U_EXPORT2
-uprv_strnicmp(const char *str1, const char *str2, uint32_t n) {
- if(str1==NULL) {
- if(str2==NULL) {
- return 0;
- } else {
- return -1;
- }
- } else if(str2==NULL) {
- return 1;
- } else {
- /* compare non-NULL strings lexically with lowercase */
- int rc;
- unsigned char c1, c2;
-
- for(; n--;) {
- c1=(unsigned char)*str1;
- c2=(unsigned char)*str2;
- if(c1==0) {
- if(c2==0) {
- return 0;
- } else {
- return -1;
- }
- } else if(c2==0) {
- return 1;
- } else {
- /* compare non-zero characters with lowercase */
- rc=(int)(unsigned char)uprv_tolower(c1)-(int)(unsigned char)uprv_tolower(c2);
- if(rc!=0) {
- return rc;
- }
- }
- ++str1;
- ++str2;
- }
- }
-
- return 0;
-}
-
-U_CAPI char* U_EXPORT2
-uprv_strdup(const char *src) {
- size_t len = uprv_strlen(src) + 1;
- char *dup = (char *) uprv_malloc(len);
-
- if (dup) {
- uprv_memcpy(dup, src, len);
- }
-
- return dup;
-}
-
-U_CAPI char* U_EXPORT2
-uprv_strndup(const char *src, int32_t n) {
- char *dup;
-
- if(n < 0) {
- dup = uprv_strdup(src);
- } else {
- dup = (char*)uprv_malloc(n+1);
- if (dup) {
- uprv_memcpy(dup, src, n);
- dup[n] = 0;
- }
- }
-
- return dup;
-}
Added: trunk/Build/source/libs/icu/icu-src/source/common/cstring.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/cstring.cpp (rev 0)
+++ trunk/Build/source/libs/icu/icu-src/source/common/cstring.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -0,0 +1,341 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+/*
+******************************************************************************
+*
+* Copyright (C) 1997-2011, International Business Machines
+* Corporation and others. All Rights Reserved.
+*
+******************************************************************************
+*
+* File CSTRING.C
+*
+* @author Helena Shih
+*
+* Modification History:
+*
+* Date Name Description
+* 6/18/98 hshih Created
+* 09/08/98 stephen Added include for ctype, for Mac Port
+* 11/15/99 helena Integrated S/390 IEEE changes.
+******************************************************************************
+*/
+
+
+
+#include <stdlib.h>
+#include <stdio.h>
+#include "unicode/utypes.h"
+#include "cmemory.h"
+#include "cstring.h"
+#include "uassert.h"
+
+/*
+ * We hardcode case conversion for invariant characters to match our expectation
+ * and the compiler execution charset.
+ * This prevents problems on systems
+ * - with non-default casing behavior, like Turkish system locales where
+ * tolower('I') maps to dotless i and toupper('i') maps to dotted I
+ * - where there are no lowercase Latin characters at all, or using different
+ * codes (some old EBCDIC codepages)
+ *
+ * This works because the compiler usually runs on a platform where the execution
+ * charset includes all of the invariant characters at their expected
+ * code positions, so that the char * string literals in ICU code match
+ * the char literals here.
+ *
+ * Note that the set of lowercase Latin letters is discontiguous in EBCDIC
+ * and the set of uppercase Latin letters is discontiguous as well.
+ */
+
+U_CAPI UBool U_EXPORT2
+uprv_isASCIILetter(char c) {
+#if U_CHARSET_FAMILY==U_EBCDIC_FAMILY
+ return
+ ('a'<=c && c<='i') || ('j'<=c && c<='r') || ('s'<=c && c<='z') ||
+ ('A'<=c && c<='I') || ('J'<=c && c<='R') || ('S'<=c && c<='Z');
+#else
+ return ('a'<=c && c<='z') || ('A'<=c && c<='Z');
+#endif
+}
+
+U_CAPI char U_EXPORT2
+uprv_toupper(char c) {
+#if U_CHARSET_FAMILY==U_EBCDIC_FAMILY
+ if(('a'<=c && c<='i') || ('j'<=c && c<='r') || ('s'<=c && c<='z')) {
+ c=(char)(c+('A'-'a'));
+ }
+#else
+ if('a'<=c && c<='z') {
+ c=(char)(c+('A'-'a'));
+ }
+#endif
+ return c;
+}
+
+
+#if 0
+/*
+ * Commented out because cstring.h defines uprv_tolower() to be
+ * the same as either uprv_asciitolower() or uprv_ebcdictolower()
+ * to reduce the amount of code to cover with tests.
+ *
+ * Note that this uprv_tolower() definition is likely to work for most
+ * charset families, not just ASCII and EBCDIC, because its #else branch
+ * is written generically.
+ */
+U_CAPI char U_EXPORT2
+uprv_tolower(char c) {
+#if U_CHARSET_FAMILY==U_EBCDIC_FAMILY
+ if(('A'<=c && c<='I') || ('J'<=c && c<='R') || ('S'<=c && c<='Z')) {
+ c=(char)(c+('a'-'A'));
+ }
+#else
+ if('A'<=c && c<='Z') {
+ c=(char)(c+('a'-'A'));
+ }
+#endif
+ return c;
+}
+#endif
+
+U_CAPI char U_EXPORT2
+uprv_asciitolower(char c) {
+ if(0x41<=c && c<=0x5a) {
+ c=(char)(c+0x20);
+ }
+ return c;
+}
+
+U_CAPI char U_EXPORT2
+uprv_ebcdictolower(char c) {
+ if( (0xc1<=(uint8_t)c && (uint8_t)c<=0xc9) ||
+ (0xd1<=(uint8_t)c && (uint8_t)c<=0xd9) ||
+ (0xe2<=(uint8_t)c && (uint8_t)c<=0xe9)
+ ) {
+ c=(char)(c-0x40);
+ }
+ return c;
+}
+
+
+U_CAPI char* U_EXPORT2
+T_CString_toLowerCase(char* str)
+{
+ char* origPtr = str;
+
+ if (str) {
+ do
+ *str = (char)uprv_tolower(*str);
+ while (*(str++));
+ }
+
+ return origPtr;
+}
+
+U_CAPI char* U_EXPORT2
+T_CString_toUpperCase(char* str)
+{
+ char* origPtr = str;
+
+ if (str) {
+ do
+ *str = (char)uprv_toupper(*str);
+ while (*(str++));
+ }
+
+ return origPtr;
+}
+
+/*
+ * Takes a int32_t and fills in a char* string with that number "radix"-based.
+ * Does not handle negative values (makes an empty string for them).
+ * Writes at most 12 chars ("-2147483647" plus NUL).
+ * Returns the length of the string (not including the NUL).
+ */
+U_CAPI int32_t U_EXPORT2
+T_CString_integerToString(char* buffer, int32_t v, int32_t radix)
+{
+ char tbuf[30];
+ int32_t tbx = sizeof(tbuf);
+ uint8_t digit;
+ int32_t length = 0;
+ uint32_t uval;
+
+ U_ASSERT(radix>=2 && radix<=16);
+ uval = (uint32_t) v;
+ if(v<0 && radix == 10) {
+ /* Only in base 10 do we conside numbers to be signed. */
+ uval = (uint32_t)(-v);
+ buffer[length++] = '-';
+ }
+
+ tbx = sizeof(tbuf)-1;
+ tbuf[tbx] = 0; /* We are generating the digits backwards. Null term the end. */
+ do {
+ digit = (uint8_t)(uval % radix);
+ tbuf[--tbx] = (char)(T_CString_itosOffset(digit));
+ uval = uval / radix;
+ } while (uval != 0);
+
+ /* copy converted number into user buffer */
+ uprv_strcpy(buffer+length, tbuf+tbx);
+ length += sizeof(tbuf) - tbx -1;
+ return length;
+}
+
+
+
+/*
+ * Takes a int64_t and fills in a char* string with that number "radix"-based.
+ * Writes at most 21: chars ("-9223372036854775807" plus NUL).
+ * Returns the length of the string, not including the terminating NULL.
+ */
+U_CAPI int32_t U_EXPORT2
+T_CString_int64ToString(char* buffer, int64_t v, uint32_t radix)
+{
+ char tbuf[30];
+ int32_t tbx = sizeof(tbuf);
+ uint8_t digit;
+ int32_t length = 0;
+ uint64_t uval;
+
+ U_ASSERT(radix>=2 && radix<=16);
+ uval = (uint64_t) v;
+ if(v<0 && radix == 10) {
+ /* Only in base 10 do we conside numbers to be signed. */
+ uval = (uint64_t)(-v);
+ buffer[length++] = '-';
+ }
+
+ tbx = sizeof(tbuf)-1;
+ tbuf[tbx] = 0; /* We are generating the digits backwards. Null term the end. */
+ do {
+ digit = (uint8_t)(uval % radix);
+ tbuf[--tbx] = (char)(T_CString_itosOffset(digit));
+ uval = uval / radix;
+ } while (uval != 0);
+
+ /* copy converted number into user buffer */
+ uprv_strcpy(buffer+length, tbuf+tbx);
+ length += sizeof(tbuf) - tbx -1;
+ return length;
+}
+
+
+U_CAPI int32_t U_EXPORT2
+T_CString_stringToInteger(const char *integerString, int32_t radix)
+{
+ char *end;
+ return uprv_strtoul(integerString, &end, radix);
+
+}
+
+U_CAPI int U_EXPORT2
+uprv_stricmp(const char *str1, const char *str2) {
+ if(str1==NULL) {
+ if(str2==NULL) {
+ return 0;
+ } else {
+ return -1;
+ }
+ } else if(str2==NULL) {
+ return 1;
+ } else {
+ /* compare non-NULL strings lexically with lowercase */
+ int rc;
+ unsigned char c1, c2;
+
+ for(;;) {
+ c1=(unsigned char)*str1;
+ c2=(unsigned char)*str2;
+ if(c1==0) {
+ if(c2==0) {
+ return 0;
+ } else {
+ return -1;
+ }
+ } else if(c2==0) {
+ return 1;
+ } else {
+ /* compare non-zero characters with lowercase */
+ rc=(int)(unsigned char)uprv_tolower(c1)-(int)(unsigned char)uprv_tolower(c2);
+ if(rc!=0) {
+ return rc;
+ }
+ }
+ ++str1;
+ ++str2;
+ }
+ }
+}
+
+U_CAPI int U_EXPORT2
+uprv_strnicmp(const char *str1, const char *str2, uint32_t n) {
+ if(str1==NULL) {
+ if(str2==NULL) {
+ return 0;
+ } else {
+ return -1;
+ }
+ } else if(str2==NULL) {
+ return 1;
+ } else {
+ /* compare non-NULL strings lexically with lowercase */
+ int rc;
+ unsigned char c1, c2;
+
+ for(; n--;) {
+ c1=(unsigned char)*str1;
+ c2=(unsigned char)*str2;
+ if(c1==0) {
+ if(c2==0) {
+ return 0;
+ } else {
+ return -1;
+ }
+ } else if(c2==0) {
+ return 1;
+ } else {
+ /* compare non-zero characters with lowercase */
+ rc=(int)(unsigned char)uprv_tolower(c1)-(int)(unsigned char)uprv_tolower(c2);
+ if(rc!=0) {
+ return rc;
+ }
+ }
+ ++str1;
+ ++str2;
+ }
+ }
+
+ return 0;
+}
+
+U_CAPI char* U_EXPORT2
+uprv_strdup(const char *src) {
+ size_t len = uprv_strlen(src) + 1;
+ char *dup = (char *) uprv_malloc(len);
+
+ if (dup) {
+ uprv_memcpy(dup, src, len);
+ }
+
+ return dup;
+}
+
+U_CAPI char* U_EXPORT2
+uprv_strndup(const char *src, int32_t n) {
+ char *dup;
+
+ if(n < 0) {
+ dup = uprv_strdup(src);
+ } else {
+ dup = (char*)uprv_malloc(n+1);
+ if (dup) {
+ uprv_memcpy(dup, src, n);
+ dup[n] = 0;
+ }
+ }
+
+ return dup;
+}
Property changes on: trunk/Build/source/libs/icu/icu-src/source/common/cstring.cpp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Build/source/libs/icu/icu-src/source/common/cstring.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/cstring.h 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/cstring.h 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
******************************************************************************
Deleted: trunk/Build/source/libs/icu/icu-src/source/common/cwchar.c
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/cwchar.c 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/cwchar.c 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,55 +0,0 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-******************************************************************************
-*
-* Copyright (C) 2001, International Business Machines
-* Corporation and others. All Rights Reserved.
-*
-******************************************************************************
-* file name: cwchar.c
-* encoding: US-ASCII
-* tab size: 8 (not used)
-* indentation:4
-*
-* created on: 2001may25
-* created by: Markus W. Scherer
-*/
-
-#include "unicode/utypes.h"
-
-#if !U_HAVE_WCSCPY
-
-#include "cwchar.h"
-
-U_CAPI wchar_t *uprv_wcscat(wchar_t *dst, const wchar_t *src) {
- wchar_t *start=dst;
- while(*dst!=0) {
- ++dst;
- }
- while((*dst=*src)!=0) {
- ++dst;
- ++src;
- }
- return start;
-}
-
-U_CAPI wchar_t *uprv_wcscpy(wchar_t *dst, const wchar_t *src) {
- wchar_t *start=dst;
- while((*dst=*src)!=0) {
- ++dst;
- ++src;
- }
- return start;
-}
-
-U_CAPI size_t uprv_wcslen(const wchar_t *src) {
- const wchar_t *start=src;
- while(*src!=0) {
- ++src;
- }
- return src-start;
-}
-
-#endif
-
Added: trunk/Build/source/libs/icu/icu-src/source/common/cwchar.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/cwchar.cpp (rev 0)
+++ trunk/Build/source/libs/icu/icu-src/source/common/cwchar.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -0,0 +1,55 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+/*
+******************************************************************************
+*
+* Copyright (C) 2001, International Business Machines
+* Corporation and others. All Rights Reserved.
+*
+******************************************************************************
+* file name: cwchar.c
+* encoding: UTF-8
+* tab size: 8 (not used)
+* indentation:4
+*
+* created on: 2001may25
+* created by: Markus W. Scherer
+*/
+
+#include "unicode/utypes.h"
+
+#if !U_HAVE_WCSCPY
+
+#include "cwchar.h"
+
+U_CAPI wchar_t *uprv_wcscat(wchar_t *dst, const wchar_t *src) {
+ wchar_t *start=dst;
+ while(*dst!=0) {
+ ++dst;
+ }
+ while((*dst=*src)!=0) {
+ ++dst;
+ ++src;
+ }
+ return start;
+}
+
+U_CAPI wchar_t *uprv_wcscpy(wchar_t *dst, const wchar_t *src) {
+ wchar_t *start=dst;
+ while((*dst=*src)!=0) {
+ ++dst;
+ ++src;
+ }
+ return start;
+}
+
+U_CAPI size_t uprv_wcslen(const wchar_t *src) {
+ const wchar_t *start=src;
+ while(*src!=0) {
+ ++src;
+ }
+ return src-start;
+}
+
+#endif
+
Property changes on: trunk/Build/source/libs/icu/icu-src/source/common/cwchar.cpp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Build/source/libs/icu/icu-src/source/common/cwchar.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/cwchar.h 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/cwchar.h 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
******************************************************************************
@@ -8,7 +8,7 @@
*
******************************************************************************
* file name: cwchar.h
-* encoding: US-ASCII
+* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
Modified: trunk/Build/source/libs/icu/icu-src/source/common/dictbe.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/dictbe.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/dictbe.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/**
*******************************************************************************
@@ -46,9 +46,9 @@
DictionaryBreakEngine::findBreaks( UText *text,
int32_t startPos,
int32_t endPos,
- UBool reverse,
int32_t breakType,
- UStack &foundBreaks ) const {
+ UVector32 &foundBreaks ) const {
+ (void)startPos; // TODO: remove this param?
int32_t result = 0;
// Find the span of characters included in the set.
@@ -60,34 +60,12 @@
int32_t rangeStart;
int32_t rangeEnd;
UChar32 c = utext_current32(text);
- if (reverse) {
- UBool isDict = fSet.contains(c);
- while((current = (int32_t)utext_getNativeIndex(text)) > startPos && isDict) {
- c = utext_previous32(text);
- isDict = fSet.contains(c);
- }
- if (current < startPos) {
- rangeStart = startPos;
- } else {
- rangeStart = current;
- if (!isDict) {
- utext_next32(text);
- rangeStart = (int32_t)utext_getNativeIndex(text);
- }
- }
- // rangeEnd = start + 1;
- utext_setNativeIndex(text, start);
- utext_next32(text);
- rangeEnd = (int32_t)utext_getNativeIndex(text);
+ while((current = (int32_t)utext_getNativeIndex(text)) < endPos && fSet.contains(c)) {
+ utext_next32(text); // TODO: recast loop for postincrement
+ c = utext_current32(text);
}
- else {
- while((current = (int32_t)utext_getNativeIndex(text)) < endPos && fSet.contains(c)) {
- utext_next32(text); // TODO: recast loop for postincrement
- c = utext_current32(text);
- }
- rangeStart = start;
- rangeEnd = current;
- }
+ rangeStart = start;
+ rangeEnd = current;
if (breakType >= 0 && breakType < 32 && (((uint32_t)1 << breakType) & fTypes)) {
result = divideUpDictionaryRange(text, rangeStart, rangeEnd, foundBreaks);
utext_setNativeIndex(text, current);
@@ -248,7 +226,7 @@
ThaiBreakEngine::divideUpDictionaryRange( UText *text,
int32_t rangeStart,
int32_t rangeEnd,
- UStack &foundBreaks ) const {
+ UVector32 &foundBreaks ) const {
utext_setNativeIndex(text, rangeStart);
utext_moveIndex32(text, THAI_MIN_WORD_SPAN);
if (utext_getNativeIndex(text) >= rangeEnd) {
@@ -487,7 +465,7 @@
LaoBreakEngine::divideUpDictionaryRange( UText *text,
int32_t rangeStart,
int32_t rangeEnd,
- UStack &foundBreaks ) const {
+ UVector32 &foundBreaks ) const {
if ((rangeEnd - rangeStart) < LAO_MIN_WORD_SPAN) {
return 0; // Not enough characters for two words
}
@@ -680,7 +658,7 @@
BurmeseBreakEngine::divideUpDictionaryRange( UText *text,
int32_t rangeStart,
int32_t rangeEnd,
- UStack &foundBreaks ) const {
+ UVector32 &foundBreaks ) const {
if ((rangeEnd - rangeStart) < BURMESE_MIN_WORD_SPAN) {
return 0; // Not enough characters for two words
}
@@ -885,7 +863,7 @@
KhmerBreakEngine::divideUpDictionaryRange( UText *text,
int32_t rangeStart,
int32_t rangeEnd,
- UStack &foundBreaks ) const {
+ UVector32 &foundBreaks ) const {
if ((rangeEnd - rangeStart) < KHMER_MIN_WORD_SPAN) {
return 0; // Not enough characters for two words
}
@@ -1110,9 +1088,9 @@
return (wordLength > kMaxKatakanaLength) ? 8192 : katakanaCost[wordLength];
}
-static inline bool isKatakana(uint16_t value) {
- return (value >= 0x30A1u && value <= 0x30FEu && value != 0x30FBu) ||
- (value >= 0xFF66u && value <= 0xFF9fu);
+static inline bool isKatakana(UChar32 value) {
+ return (value >= 0x30A1 && value <= 0x30FE && value != 0x30FB) ||
+ (value >= 0xFF66 && value <= 0xFF9f);
}
@@ -1128,7 +1106,7 @@
* @param text A UText representing the text
* @param rangeStart The start of the range of dictionary characters
* @param rangeEnd The end of the range of dictionary characters
- * @param foundBreaks Output of C array of int32_t break positions, or 0
+ * @param foundBreaks vector<int32> to receive the break positions
* @return The number of breaks found
*/
int32_t
@@ -1135,7 +1113,7 @@
CjkBreakEngine::divideUpDictionaryRange( UText *inText,
int32_t rangeStart,
int32_t rangeEnd,
- UStack &foundBreaks ) const {
+ UVector32 &foundBreaks ) const {
if (rangeStart >= rangeEnd) {
return 0;
}
@@ -1385,13 +1363,27 @@
// Now that we're done, convert positions in t_boundary[] (indices in
// the normalized input string) back to indices in the original input UText
// while reversing t_boundary and pushing values to foundBreaks.
+ int32_t prevCPPos = -1;
+ int32_t prevUTextPos = -1;
for (int32_t i = numBreaks-1; i >= 0; i--) {
int32_t cpPos = t_boundary.elementAti(i);
+ U_ASSERT(cpPos > prevCPPos);
int32_t utextPos = inputMap.isValid() ? inputMap->elementAti(cpPos) : cpPos + rangeStart;
- // Boundaries are added to foundBreaks output in ascending order.
- U_ASSERT(foundBreaks.size() == 0 ||foundBreaks.peeki() < utextPos);
- foundBreaks.push(utextPos, status);
+ U_ASSERT(utextPos >= prevUTextPos);
+ if (utextPos > prevUTextPos) {
+ // Boundaries are added to foundBreaks output in ascending order.
+ U_ASSERT(foundBreaks.size() == 0 || foundBreaks.peeki() < utextPos);
+ foundBreaks.push(utextPos, status);
+ } else {
+ // Normalization expanded the input text, the dictionary found a boundary
+ // within the expansion, giving two boundaries with the same index in the
+ // original text. Ignore the second. See ticket #12918.
+ --numBreaks;
+ }
+ prevCPPos = cpPos;
+ prevUTextPos = utextPos;
}
+ (void)prevCPPos; // suppress compiler warnings about unused variable
// inString goes out of scope
// inputMap goes out of scope
Modified: trunk/Build/source/libs/icu/icu-src/source/common/dictbe.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/dictbe.h 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/dictbe.h 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/**
*******************************************************************************
@@ -15,6 +15,7 @@
#include "unicode/utext.h"
#include "brkeng.h"
+#include "uvectr32.h"
U_NAMESPACE_BEGIN
@@ -84,21 +85,18 @@
*
* @param text A UText representing the text. The iterator is left at
* the end of the run of characters which the engine is capable of handling
- * that starts from the first (or last) character in the range.
+ * that starts from the first character in the range.
* @param startPos The start of the run within the supplied text.
* @param endPos The end of the run within the supplied text.
- * @param reverse Whether the caller is looking for breaks in a reverse
- * direction.
* @param breakType The type of break desired, or -1.
- * @param foundBreaks An allocated C array of the breaks found, if any
+ * @param foundBreaks vector of int32_t to receive the break positions
* @return The number of breaks found.
*/
virtual int32_t findBreaks( UText *text,
int32_t startPos,
int32_t endPos,
- UBool reverse,
int32_t breakType,
- UStack &foundBreaks ) const;
+ UVector32 &foundBreaks ) const;
protected:
@@ -128,7 +126,7 @@
virtual int32_t divideUpDictionaryRange( UText *text,
int32_t rangeStart,
int32_t rangeEnd,
- UStack &foundBreaks ) const = 0;
+ UVector32 &foundBreaks ) const = 0;
};
@@ -185,7 +183,7 @@
virtual int32_t divideUpDictionaryRange( UText *text,
int32_t rangeStart,
int32_t rangeEnd,
- UStack &foundBreaks ) const;
+ UVector32 &foundBreaks ) const;
};
@@ -241,7 +239,7 @@
virtual int32_t divideUpDictionaryRange( UText *text,
int32_t rangeStart,
int32_t rangeEnd,
- UStack &foundBreaks ) const;
+ UVector32 &foundBreaks ) const;
};
@@ -297,7 +295,7 @@
virtual int32_t divideUpDictionaryRange( UText *text,
int32_t rangeStart,
int32_t rangeEnd,
- UStack &foundBreaks ) const;
+ UVector32 &foundBreaks ) const;
};
@@ -353,7 +351,7 @@
virtual int32_t divideUpDictionaryRange( UText *text,
int32_t rangeStart,
int32_t rangeEnd,
- UStack &foundBreaks ) const;
+ UVector32 &foundBreaks ) const;
};
@@ -417,7 +415,7 @@
virtual int32_t divideUpDictionaryRange( UText *text,
int32_t rangeStart,
int32_t rangeEnd,
- UStack &foundBreaks ) const;
+ UVector32 &foundBreaks ) const;
};
Modified: trunk/Build/source/libs/icu/icu-src/source/common/dictionarydata.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/dictionarydata.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/dictionarydata.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
Modified: trunk/Build/source/libs/icu/icu-src/source/common/dictionarydata.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/dictionarydata.h 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/dictionarydata.h 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
Modified: trunk/Build/source/libs/icu/icu-src/source/common/dtintrv.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/dtintrv.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/dtintrv.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*******************************************************************************
* Copyright (C) 2008, International Business Machines Corporation and
Added: trunk/Build/source/libs/icu/icu-src/source/common/edits.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/edits.cpp (rev 0)
+++ trunk/Build/source/libs/icu/icu-src/source/common/edits.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -0,0 +1,776 @@
+// © 2017 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+// edits.cpp
+// created: 2017feb08 Markus W. Scherer
+
+#include "unicode/utypes.h"
+#include "unicode/edits.h"
+#include "cmemory.h"
+#include "uassert.h"
+
+U_NAMESPACE_BEGIN
+
+namespace {
+
+// 0000uuuuuuuuuuuu records u+1 unchanged text units.
+const int32_t MAX_UNCHANGED_LENGTH = 0x1000;
+const int32_t MAX_UNCHANGED = MAX_UNCHANGED_LENGTH - 1;
+
+// 0mmmnnnccccccccc with m=1..6 records ccc+1 replacements of m:n text units.
+const int32_t MAX_SHORT_CHANGE_OLD_LENGTH = 6;
+const int32_t MAX_SHORT_CHANGE_NEW_LENGTH = 7;
+const int32_t SHORT_CHANGE_NUM_MASK = 0x1ff;
+const int32_t MAX_SHORT_CHANGE = 0x6fff;
+
+// 0111mmmmmmnnnnnn records a replacement of m text units with n.
+// m or n = 61: actual length follows in the next edits array unit.
+// m or n = 62..63: actual length follows in the next two edits array units.
+// Bit 30 of the actual length is in the head unit.
+// Trailing units have bit 15 set.
+const int32_t LENGTH_IN_1TRAIL = 61;
+const int32_t LENGTH_IN_2TRAIL = 62;
+
+} // namespace
+
+void Edits::releaseArray() U_NOEXCEPT {
+ if (array != stackArray) {
+ uprv_free(array);
+ }
+}
+
+Edits &Edits::copyArray(const Edits &other) {
+ if (U_FAILURE(errorCode_)) {
+ length = delta = numChanges = 0;
+ return *this;
+ }
+ if (length > capacity) {
+ uint16_t *newArray = (uint16_t *)uprv_malloc((size_t)length * 2);
+ if (newArray == nullptr) {
+ length = delta = numChanges = 0;
+ errorCode_ = U_MEMORY_ALLOCATION_ERROR;
+ return *this;
+ }
+ releaseArray();
+ array = newArray;
+ capacity = length;
+ }
+ if (length > 0) {
+ uprv_memcpy(array, other.array, (size_t)length * 2);
+ }
+ return *this;
+}
+
+Edits &Edits::moveArray(Edits &src) U_NOEXCEPT {
+ if (U_FAILURE(errorCode_)) {
+ length = delta = numChanges = 0;
+ return *this;
+ }
+ releaseArray();
+ if (length > STACK_CAPACITY) {
+ array = src.array;
+ capacity = src.capacity;
+ src.array = src.stackArray;
+ src.capacity = STACK_CAPACITY;
+ src.reset();
+ return *this;
+ }
+ array = stackArray;
+ capacity = STACK_CAPACITY;
+ if (length > 0) {
+ uprv_memcpy(array, src.array, (size_t)length * 2);
+ }
+ return *this;
+}
+
+Edits &Edits::operator=(const Edits &other) {
+ length = other.length;
+ delta = other.delta;
+ numChanges = other.numChanges;
+ errorCode_ = other.errorCode_;
+ return copyArray(other);
+}
+
+Edits &Edits::operator=(Edits &&src) U_NOEXCEPT {
+ length = src.length;
+ delta = src.delta;
+ numChanges = src.numChanges;
+ errorCode_ = src.errorCode_;
+ return moveArray(src);
+}
+
+Edits::~Edits() {
+ releaseArray();
+}
+
+void Edits::reset() U_NOEXCEPT {
+ length = delta = numChanges = 0;
+ errorCode_ = U_ZERO_ERROR;
+}
+
+void Edits::addUnchanged(int32_t unchangedLength) {
+ if(U_FAILURE(errorCode_) || unchangedLength == 0) { return; }
+ if(unchangedLength < 0) {
+ errorCode_ = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+ // Merge into previous unchanged-text record, if any.
+ int32_t last = lastUnit();
+ if(last < MAX_UNCHANGED) {
+ int32_t remaining = MAX_UNCHANGED - last;
+ if (remaining >= unchangedLength) {
+ setLastUnit(last + unchangedLength);
+ return;
+ }
+ setLastUnit(MAX_UNCHANGED);
+ unchangedLength -= remaining;
+ }
+ // Split large lengths into multiple units.
+ while(unchangedLength >= MAX_UNCHANGED_LENGTH) {
+ append(MAX_UNCHANGED);
+ unchangedLength -= MAX_UNCHANGED_LENGTH;
+ }
+ // Write a small (remaining) length.
+ if(unchangedLength > 0) {
+ append(unchangedLength - 1);
+ }
+}
+
+void Edits::addReplace(int32_t oldLength, int32_t newLength) {
+ if(U_FAILURE(errorCode_)) { return; }
+ if(oldLength < 0 || newLength < 0) {
+ errorCode_ = U_ILLEGAL_ARGUMENT_ERROR;
+ return;
+ }
+ if (oldLength == 0 && newLength == 0) {
+ return;
+ }
+ ++numChanges;
+ int32_t newDelta = newLength - oldLength;
+ if (newDelta != 0) {
+ if ((newDelta > 0 && delta >= 0 && newDelta > (INT32_MAX - delta)) ||
+ (newDelta < 0 && delta < 0 && newDelta < (INT32_MIN - delta))) {
+ // Integer overflow or underflow.
+ errorCode_ = U_INDEX_OUTOFBOUNDS_ERROR;
+ return;
+ }
+ delta += newDelta;
+ }
+
+ if(0 < oldLength && oldLength <= MAX_SHORT_CHANGE_OLD_LENGTH &&
+ newLength <= MAX_SHORT_CHANGE_NEW_LENGTH) {
+ // Merge into previous same-lengths short-replacement record, if any.
+ int32_t u = (oldLength << 12) | (newLength << 9);
+ int32_t last = lastUnit();
+ if(MAX_UNCHANGED < last && last < MAX_SHORT_CHANGE &&
+ (last & ~SHORT_CHANGE_NUM_MASK) == u &&
+ (last & SHORT_CHANGE_NUM_MASK) < SHORT_CHANGE_NUM_MASK) {
+ setLastUnit(last + 1);
+ return;
+ }
+ append(u);
+ return;
+ }
+
+ int32_t head = 0x7000;
+ if (oldLength < LENGTH_IN_1TRAIL && newLength < LENGTH_IN_1TRAIL) {
+ head |= oldLength << 6;
+ head |= newLength;
+ append(head);
+ } else if ((capacity - length) >= 5 || growArray()) {
+ int32_t limit = length + 1;
+ if(oldLength < LENGTH_IN_1TRAIL) {
+ head |= oldLength << 6;
+ } else if(oldLength <= 0x7fff) {
+ head |= LENGTH_IN_1TRAIL << 6;
+ array[limit++] = (uint16_t)(0x8000 | oldLength);
+ } else {
+ head |= (LENGTH_IN_2TRAIL + (oldLength >> 30)) << 6;
+ array[limit++] = (uint16_t)(0x8000 | (oldLength >> 15));
+ array[limit++] = (uint16_t)(0x8000 | oldLength);
+ }
+ if(newLength < LENGTH_IN_1TRAIL) {
+ head |= newLength;
+ } else if(newLength <= 0x7fff) {
+ head |= LENGTH_IN_1TRAIL;
+ array[limit++] = (uint16_t)(0x8000 | newLength);
+ } else {
+ head |= LENGTH_IN_2TRAIL + (newLength >> 30);
+ array[limit++] = (uint16_t)(0x8000 | (newLength >> 15));
+ array[limit++] = (uint16_t)(0x8000 | newLength);
+ }
+ array[length] = (uint16_t)head;
+ length = limit;
+ }
+}
+
+void Edits::append(int32_t r) {
+ if(length < capacity || growArray()) {
+ array[length++] = (uint16_t)r;
+ }
+}
+
+UBool Edits::growArray() {
+ int32_t newCapacity;
+ if (array == stackArray) {
+ newCapacity = 2000;
+ } else if (capacity == INT32_MAX) {
+ // Not U_BUFFER_OVERFLOW_ERROR because that could be confused on a string transform API
+ // with a result-string-buffer overflow.
+ errorCode_ = U_INDEX_OUTOFBOUNDS_ERROR;
+ return FALSE;
+ } else if (capacity >= (INT32_MAX / 2)) {
+ newCapacity = INT32_MAX;
+ } else {
+ newCapacity = 2 * capacity;
+ }
+ // Grow by at least 5 units so that a maximal change record will fit.
+ if ((newCapacity - capacity) < 5) {
+ errorCode_ = U_INDEX_OUTOFBOUNDS_ERROR;
+ return FALSE;
+ }
+ uint16_t *newArray = (uint16_t *)uprv_malloc((size_t)newCapacity * 2);
+ if (newArray == NULL) {
+ errorCode_ = U_MEMORY_ALLOCATION_ERROR;
+ return FALSE;
+ }
+ uprv_memcpy(newArray, array, (size_t)length * 2);
+ releaseArray();
+ array = newArray;
+ capacity = newCapacity;
+ return TRUE;
+}
+
+UBool Edits::copyErrorTo(UErrorCode &outErrorCode) {
+ if (U_FAILURE(outErrorCode)) { return TRUE; }
+ if (U_SUCCESS(errorCode_)) { return FALSE; }
+ outErrorCode = errorCode_;
+ return TRUE;
+}
+
+Edits &Edits::mergeAndAppend(const Edits &ab, const Edits &bc, UErrorCode &errorCode) {
+ if (copyErrorTo(errorCode)) { return *this; }
+ // Picture string a --(Edits ab)--> string b --(Edits bc)--> string c.
+ // Parallel iteration over both Edits.
+ Iterator abIter = ab.getFineIterator();
+ Iterator bcIter = bc.getFineIterator();
+ UBool abHasNext = TRUE, bcHasNext = TRUE;
+ // Copy iterator state into local variables, so that we can modify and subdivide spans.
+ // ab old & new length, bc old & new length
+ int32_t aLength = 0, ab_bLength = 0, bc_bLength = 0, cLength = 0;
+ // When we have different-intermediate-length changes, we accumulate a larger change.
+ int32_t pending_aLength = 0, pending_cLength = 0;
+ for (;;) {
+ // At this point, for each of the two iterators:
+ // Either we are done with the locally cached current edit,
+ // and its intermediate-string length has been reset,
+ // or we will continue to work with a truncated remainder of this edit.
+ //
+ // If the current edit is done, and the iterator has not yet reached the end,
+ // then we fetch the next edit. This is true for at least one of the iterators.
+ //
+ // Normally it does not matter whether we fetch from ab and then bc or vice versa.
+ // However, the result is observably different when
+ // ab deletions meet bc insertions at the same intermediate-string index.
+ // Some users expect the bc insertions to come first, so we fetch from bc first.
+ if (bc_bLength == 0) {
+ if (bcHasNext && (bcHasNext = bcIter.next(errorCode))) {
+ bc_bLength = bcIter.oldLength();
+ cLength = bcIter.newLength();
+ if (bc_bLength == 0) {
+ // insertion
+ if (ab_bLength == 0 || !abIter.hasChange()) {
+ addReplace(pending_aLength, pending_cLength + cLength);
+ pending_aLength = pending_cLength = 0;
+ } else {
+ pending_cLength += cLength;
+ }
+ continue;
+ }
+ }
+ // else see if the other iterator is done, too.
+ }
+ if (ab_bLength == 0) {
+ if (abHasNext && (abHasNext = abIter.next(errorCode))) {
+ aLength = abIter.oldLength();
+ ab_bLength = abIter.newLength();
+ if (ab_bLength == 0) {
+ // deletion
+ if (bc_bLength == bcIter.oldLength() || !bcIter.hasChange()) {
+ addReplace(pending_aLength + aLength, pending_cLength);
+ pending_aLength = pending_cLength = 0;
+ } else {
+ pending_aLength += aLength;
+ }
+ continue;
+ }
+ } else if (bc_bLength == 0) {
+ // Both iterators are done at the same time:
+ // The intermediate-string lengths match.
+ break;
+ } else {
+ // The ab output string is shorter than the bc input string.
+ if (!copyErrorTo(errorCode)) {
+ errorCode = U_ILLEGAL_ARGUMENT_ERROR;
+ }
+ return *this;
+ }
+ }
+ if (bc_bLength == 0) {
+ // The bc input string is shorter than the ab output string.
+ if (!copyErrorTo(errorCode)) {
+ errorCode = U_ILLEGAL_ARGUMENT_ERROR;
+ }
+ return *this;
+ }
+ // Done fetching: ab_bLength > 0 && bc_bLength > 0
+
+ // The current state has two parts:
+ // - Past: We accumulate a longer ac edit in the "pending" variables.
+ // - Current: We have copies of the current ab/bc edits in local variables.
+ // At least one side is newly fetched.
+ // One side might be a truncated remainder of an edit we fetched earlier.
+
+ if (!abIter.hasChange() && !bcIter.hasChange()) {
+ // An unchanged span all the way from string a to string c.
+ if (pending_aLength != 0 || pending_cLength != 0) {
+ addReplace(pending_aLength, pending_cLength);
+ pending_aLength = pending_cLength = 0;
+ }
+ int32_t unchangedLength = aLength <= cLength ? aLength : cLength;
+ addUnchanged(unchangedLength);
+ ab_bLength = aLength -= unchangedLength;
+ bc_bLength = cLength -= unchangedLength;
+ // At least one of the unchanged spans is now empty.
+ continue;
+ }
+ if (!abIter.hasChange() && bcIter.hasChange()) {
+ // Unchanged a->b but changed b->c.
+ if (ab_bLength >= bc_bLength) {
+ // Split the longer unchanged span into change + remainder.
+ addReplace(pending_aLength + bc_bLength, pending_cLength + cLength);
+ pending_aLength = pending_cLength = 0;
+ aLength = ab_bLength -= bc_bLength;
+ bc_bLength = 0;
+ continue;
+ }
+ // Handle the shorter unchanged span below like a change.
+ } else if (abIter.hasChange() && !bcIter.hasChange()) {
+ // Changed a->b and then unchanged b->c.
+ if (ab_bLength <= bc_bLength) {
+ // Split the longer unchanged span into change + remainder.
+ addReplace(pending_aLength + aLength, pending_cLength + ab_bLength);
+ pending_aLength = pending_cLength = 0;
+ cLength = bc_bLength -= ab_bLength;
+ ab_bLength = 0;
+ continue;
+ }
+ // Handle the shorter unchanged span below like a change.
+ } else { // both abIter.hasChange() && bcIter.hasChange()
+ if (ab_bLength == bc_bLength) {
+ // Changes on both sides up to the same position. Emit & reset.
+ addReplace(pending_aLength + aLength, pending_cLength + cLength);
+ pending_aLength = pending_cLength = 0;
+ ab_bLength = bc_bLength = 0;
+ continue;
+ }
+ }
+ // Accumulate the a->c change, reset the shorter side,
+ // keep a remainder of the longer one.
+ pending_aLength += aLength;
+ pending_cLength += cLength;
+ if (ab_bLength < bc_bLength) {
+ bc_bLength -= ab_bLength;
+ cLength = ab_bLength = 0;
+ } else { // ab_bLength > bc_bLength
+ ab_bLength -= bc_bLength;
+ aLength = bc_bLength = 0;
+ }
+ }
+ if (pending_aLength != 0 || pending_cLength != 0) {
+ addReplace(pending_aLength, pending_cLength);
+ }
+ copyErrorTo(errorCode);
+ return *this;
+}
+
+Edits::Iterator::Iterator(const uint16_t *a, int32_t len, UBool oc, UBool crs) :
+ array(a), index(0), length(len), remaining(0),
+ onlyChanges_(oc), coarse(crs),
+ dir(0), changed(FALSE), oldLength_(0), newLength_(0),
+ srcIndex(0), replIndex(0), destIndex(0) {}
+
+int32_t Edits::Iterator::readLength(int32_t head) {
+ if (head < LENGTH_IN_1TRAIL) {
+ return head;
+ } else if (head < LENGTH_IN_2TRAIL) {
+ U_ASSERT(index < length);
+ U_ASSERT(array[index] >= 0x8000);
+ return array[index++] & 0x7fff;
+ } else {
+ U_ASSERT((index + 2) <= length);
+ U_ASSERT(array[index] >= 0x8000);
+ U_ASSERT(array[index + 1] >= 0x8000);
+ int32_t len = ((head & 1) << 30) |
+ ((int32_t)(array[index] & 0x7fff) << 15) |
+ (array[index + 1] & 0x7fff);
+ index += 2;
+ return len;
+ }
+}
+
+void Edits::Iterator::updateNextIndexes() {
+ srcIndex += oldLength_;
+ if (changed) {
+ replIndex += newLength_;
+ }
+ destIndex += newLength_;
+}
+
+void Edits::Iterator::updatePreviousIndexes() {
+ srcIndex -= oldLength_;
+ if (changed) {
+ replIndex -= newLength_;
+ }
+ destIndex -= newLength_;
+}
+
+UBool Edits::Iterator::noNext() {
+ // No change before or beyond the string.
+ dir = 0;
+ changed = FALSE;
+ oldLength_ = newLength_ = 0;
+ return FALSE;
+}
+
+UBool Edits::Iterator::next(UBool onlyChanges, UErrorCode &errorCode) {
+ // Forward iteration: Update the string indexes to the limit of the current span,
+ // and post-increment-read array units to assemble a new span.
+ // Leaves the array index one after the last unit of that span.
+ if (U_FAILURE(errorCode)) { return FALSE; }
+ // We have an errorCode in case we need to start guarding against integer overflows.
+ // It is also convenient for caller loops if we bail out when an error was set elsewhere.
+ if (dir > 0) {
+ updateNextIndexes();
+ } else {
+ if (dir < 0) {
+ // Turn around from previous() to next().
+ // Post-increment-read the same span again.
+ if (remaining > 0) {
+ // Fine-grained iterator:
+ // Stay on the current one of a sequence of compressed changes.
+ ++index; // next() rests on the index after the sequence unit.
+ dir = 1;
+ return TRUE;
+ }
+ }
+ dir = 1;
+ }
+ if (remaining >= 1) {
+ // Fine-grained iterator: Continue a sequence of compressed changes.
+ if (remaining > 1) {
+ --remaining;
+ return TRUE;
+ }
+ remaining = 0;
+ }
+ if (index >= length) {
+ return noNext();
+ }
+ int32_t u = array[index++];
+ if (u <= MAX_UNCHANGED) {
+ // Combine adjacent unchanged ranges.
+ changed = FALSE;
+ oldLength_ = u + 1;
+ while (index < length && (u = array[index]) <= MAX_UNCHANGED) {
+ ++index;
+ oldLength_ += u + 1;
+ }
+ newLength_ = oldLength_;
+ if (onlyChanges) {
+ updateNextIndexes();
+ if (index >= length) {
+ return noNext();
+ }
+ // already fetched u > MAX_UNCHANGED at index
+ ++index;
+ } else {
+ return TRUE;
+ }
+ }
+ changed = TRUE;
+ if (u <= MAX_SHORT_CHANGE) {
+ int32_t oldLen = u >> 12;
+ int32_t newLen = (u >> 9) & MAX_SHORT_CHANGE_NEW_LENGTH;
+ int32_t num = (u & SHORT_CHANGE_NUM_MASK) + 1;
+ if (coarse) {
+ oldLength_ = num * oldLen;
+ newLength_ = num * newLen;
+ } else {
+ // Split a sequence of changes that was compressed into one unit.
+ oldLength_ = oldLen;
+ newLength_ = newLen;
+ if (num > 1) {
+ remaining = num; // This is the first of two or more changes.
+ }
+ return TRUE;
+ }
+ } else {
+ U_ASSERT(u <= 0x7fff);
+ oldLength_ = readLength((u >> 6) & 0x3f);
+ newLength_ = readLength(u & 0x3f);
+ if (!coarse) {
+ return TRUE;
+ }
+ }
+ // Combine adjacent changes.
+ while (index < length && (u = array[index]) > MAX_UNCHANGED) {
+ ++index;
+ if (u <= MAX_SHORT_CHANGE) {
+ int32_t num = (u & SHORT_CHANGE_NUM_MASK) + 1;
+ oldLength_ += (u >> 12) * num;
+ newLength_ += ((u >> 9) & MAX_SHORT_CHANGE_NEW_LENGTH) * num;
+ } else {
+ U_ASSERT(u <= 0x7fff);
+ oldLength_ += readLength((u >> 6) & 0x3f);
+ newLength_ += readLength(u & 0x3f);
+ }
+ }
+ return TRUE;
+}
+
+UBool Edits::Iterator::previous(UErrorCode &errorCode) {
+ // Backward iteration: Pre-decrement-read array units to assemble a new span,
+ // then update the string indexes to the start of that span.
+ // Leaves the array index on the head unit of that span.
+ if (U_FAILURE(errorCode)) { return FALSE; }
+ // We have an errorCode in case we need to start guarding against integer overflows.
+ // It is also convenient for caller loops if we bail out when an error was set elsewhere.
+ if (dir >= 0) {
+ if (dir > 0) {
+ // Turn around from next() to previous().
+ // Set the string indexes to the span limit and
+ // pre-decrement-read the same span again.
+ if (remaining > 0) {
+ // Fine-grained iterator:
+ // Stay on the current one of a sequence of compressed changes.
+ --index; // previous() rests on the sequence unit.
+ dir = -1;
+ return TRUE;
+ }
+ updateNextIndexes();
+ }
+ dir = -1;
+ }
+ if (remaining > 0) {
+ // Fine-grained iterator: Continue a sequence of compressed changes.
+ int32_t u = array[index];
+ U_ASSERT(MAX_UNCHANGED < u && u <= MAX_SHORT_CHANGE);
+ if (remaining <= (u & SHORT_CHANGE_NUM_MASK)) {
+ ++remaining;
+ updatePreviousIndexes();
+ return TRUE;
+ }
+ remaining = 0;
+ }
+ if (index <= 0) {
+ return noNext();
+ }
+ int32_t u = array[--index];
+ if (u <= MAX_UNCHANGED) {
+ // Combine adjacent unchanged ranges.
+ changed = FALSE;
+ oldLength_ = u + 1;
+ while (index > 0 && (u = array[index - 1]) <= MAX_UNCHANGED) {
+ --index;
+ oldLength_ += u + 1;
+ }
+ newLength_ = oldLength_;
+ // No need to handle onlyChanges as long as previous() is called only from findIndex().
+ updatePreviousIndexes();
+ return TRUE;
+ }
+ changed = TRUE;
+ if (u <= MAX_SHORT_CHANGE) {
+ int32_t oldLen = u >> 12;
+ int32_t newLen = (u >> 9) & MAX_SHORT_CHANGE_NEW_LENGTH;
+ int32_t num = (u & SHORT_CHANGE_NUM_MASK) + 1;
+ if (coarse) {
+ oldLength_ = num * oldLen;
+ newLength_ = num * newLen;
+ } else {
+ // Split a sequence of changes that was compressed into one unit.
+ oldLength_ = oldLen;
+ newLength_ = newLen;
+ if (num > 1) {
+ remaining = 1; // This is the last of two or more changes.
+ }
+ updatePreviousIndexes();
+ return TRUE;
+ }
+ } else {
+ if (u <= 0x7fff) {
+ // The change is encoded in u alone.
+ oldLength_ = readLength((u >> 6) & 0x3f);
+ newLength_ = readLength(u & 0x3f);
+ } else {
+ // Back up to the head of the change, read the lengths,
+ // and reset the index to the head again.
+ U_ASSERT(index > 0);
+ while ((u = array[--index]) > 0x7fff) {}
+ U_ASSERT(u > MAX_SHORT_CHANGE);
+ int32_t headIndex = index++;
+ oldLength_ = readLength((u >> 6) & 0x3f);
+ newLength_ = readLength(u & 0x3f);
+ index = headIndex;
+ }
+ if (!coarse) {
+ updatePreviousIndexes();
+ return TRUE;
+ }
+ }
+ // Combine adjacent changes.
+ while (index > 0 && (u = array[index - 1]) > MAX_UNCHANGED) {
+ --index;
+ if (u <= MAX_SHORT_CHANGE) {
+ int32_t num = (u & SHORT_CHANGE_NUM_MASK) + 1;
+ oldLength_ += (u >> 12) * num;
+ newLength_ += ((u >> 9) & MAX_SHORT_CHANGE_NEW_LENGTH) * num;
+ } else if (u <= 0x7fff) {
+ // Read the lengths, and reset the index to the head again.
+ int32_t headIndex = index++;
+ oldLength_ += readLength((u >> 6) & 0x3f);
+ newLength_ += readLength(u & 0x3f);
+ index = headIndex;
+ }
+ }
+ updatePreviousIndexes();
+ return TRUE;
+}
+
+int32_t Edits::Iterator::findIndex(int32_t i, UBool findSource, UErrorCode &errorCode) {
+ if (U_FAILURE(errorCode) || i < 0) { return -1; }
+ int32_t spanStart, spanLength;
+ if (findSource) { // find source index
+ spanStart = srcIndex;
+ spanLength = oldLength_;
+ } else { // find destination index
+ spanStart = destIndex;
+ spanLength = newLength_;
+ }
+ if (i < spanStart) {
+ if (i >= (spanStart / 2)) {
+ // Search backwards.
+ for (;;) {
+ UBool hasPrevious = previous(errorCode);
+ U_ASSERT(hasPrevious); // because i>=0 and the first span starts at 0
+ (void)hasPrevious; // avoid unused-variable warning
+ spanStart = findSource ? srcIndex : destIndex;
+ if (i >= spanStart) {
+ // The index is in the current span.
+ return 0;
+ }
+ if (remaining > 0) {
+ // Is the index in one of the remaining compressed edits?
+ // spanStart is the start of the current span, first of the remaining ones.
+ spanLength = findSource ? oldLength_ : newLength_;
+ int32_t u = array[index];
+ U_ASSERT(MAX_UNCHANGED < u && u <= MAX_SHORT_CHANGE);
+ int32_t num = (u & SHORT_CHANGE_NUM_MASK) + 1 - remaining;
+ int32_t len = num * spanLength;
+ if (i >= (spanStart - len)) {
+ int32_t n = ((spanStart - i - 1) / spanLength) + 1;
+ // 1 <= n <= num
+ srcIndex -= n * oldLength_;
+ replIndex -= n * newLength_;
+ destIndex -= n * newLength_;
+ remaining += n;
+ return 0;
+ }
+ // Skip all of these edits at once.
+ srcIndex -= num * oldLength_;
+ replIndex -= num * newLength_;
+ destIndex -= num * newLength_;
+ remaining = 0;
+ }
+ }
+ }
+ // Reset the iterator to the start.
+ dir = 0;
+ index = remaining = oldLength_ = newLength_ = srcIndex = replIndex = destIndex = 0;
+ } else if (i < (spanStart + spanLength)) {
+ // The index is in the current span.
+ return 0;
+ }
+ while (next(FALSE, errorCode)) {
+ if (findSource) {
+ spanStart = srcIndex;
+ spanLength = oldLength_;
+ } else {
+ spanStart = destIndex;
+ spanLength = newLength_;
+ }
+ if (i < (spanStart + spanLength)) {
+ // The index is in the current span.
+ return 0;
+ }
+ if (remaining > 1) {
+ // Is the index in one of the remaining compressed edits?
+ // spanStart is the start of the current span, first of the remaining ones.
+ int32_t len = remaining * spanLength;
+ if (i < (spanStart + len)) {
+ int32_t n = (i - spanStart) / spanLength; // 1 <= n <= remaining - 1
+ srcIndex += n * oldLength_;
+ replIndex += n * newLength_;
+ destIndex += n * newLength_;
+ remaining -= n;
+ return 0;
+ }
+ // Make next() skip all of these edits at once.
+ oldLength_ *= remaining;
+ newLength_ *= remaining;
+ remaining = 0;
+ }
+ }
+ return 1;
+}
+
+int32_t Edits::Iterator::destinationIndexFromSourceIndex(int32_t i, UErrorCode &errorCode) {
+ int32_t where = findIndex(i, TRUE, errorCode);
+ if (where < 0) {
+ // Error or before the string.
+ return 0;
+ }
+ if (where > 0 || i == srcIndex) {
+ // At or after string length, or at start of the found span.
+ return destIndex;
+ }
+ if (changed) {
+ // In a change span, map to its end.
+ return destIndex + newLength_;
+ } else {
+ // In an unchanged span, offset 1:1 within it.
+ return destIndex + (i - srcIndex);
+ }
+}
+
+int32_t Edits::Iterator::sourceIndexFromDestinationIndex(int32_t i, UErrorCode &errorCode) {
+ int32_t where = findIndex(i, FALSE, errorCode);
+ if (where < 0) {
+ // Error or before the string.
+ return 0;
+ }
+ if (where > 0 || i == destIndex) {
+ // At or after string length, or at start of the found span.
+ return srcIndex;
+ }
+ if (changed) {
+ // In a change span, map to its end.
+ return srcIndex + oldLength_;
+ } else {
+ // In an unchanged span, offset within it.
+ return srcIndex + (i - destIndex);
+ }
+}
+
+U_NAMESPACE_END
Property changes on: trunk/Build/source/libs/icu/icu-src/source/common/edits.cpp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Build/source/libs/icu/icu-src/source/common/errorcode.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/errorcode.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/errorcode.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
@@ -8,7 +8,7 @@
*
*******************************************************************************
* file name: errorcode.cpp
-* encoding: US-ASCII
+* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
Modified: trunk/Build/source/libs/icu/icu-src/source/common/filteredbrk.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/filteredbrk.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/filteredbrk.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
@@ -694,7 +694,7 @@
}
FilteredBreakIteratorBuilder *
-FilteredBreakIteratorBuilder::createInstance(UErrorCode& status) {
+FilteredBreakIteratorBuilder::createEmptyInstance(UErrorCode& status) {
if(U_FAILURE(status)) return NULL;
LocalPointer<FilteredBreakIteratorBuilder> ret(new SimpleFilteredBreakIteratorBuilder(status), status);
return (U_SUCCESS(status))? ret.orphan(): NULL;
@@ -702,4 +702,4 @@
U_NAMESPACE_END
-#endif //#if !UCONFIG_NO_BREAK_ITERATION && U_HAVE_STD_STRING && !UCONFIG_NO_FILTERED_BREAK_ITERATION
+#endif //#if !UCONFIG_NO_BREAK_ITERATION && !UCONFIG_NO_FILTERED_BREAK_ITERATION
Modified: trunk/Build/source/libs/icu/icu-src/source/common/filterednormalizer2.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/filterednormalizer2.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/filterednormalizer2.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
@@ -8,7 +8,7 @@
*
*******************************************************************************
* file name: filterednormalizer2.cpp
-* encoding: US-ASCII
+* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
@@ -20,7 +20,9 @@
#if !UCONFIG_NO_NORMALIZATION
+#include "unicode/edits.h"
#include "unicode/normalizer2.h"
+#include "unicode/stringoptions.h"
#include "unicode/uniset.h"
#include "unicode/unistr.h"
#include "unicode/unorm.h"
@@ -85,6 +87,52 @@
return dest;
}
+void
+FilteredNormalizer2::normalizeUTF8(uint32_t options, StringPiece src, ByteSink &sink,
+ Edits *edits, UErrorCode &errorCode) const {
+ if (U_FAILURE(errorCode)) {
+ return;
+ }
+ if (edits != nullptr && (options & U_EDITS_NO_RESET) == 0) {
+ edits->reset();
+ }
+ options |= U_EDITS_NO_RESET; // Do not reset for each span.
+ normalizeUTF8(options, src.data(), src.length(), sink, edits, USET_SPAN_SIMPLE, errorCode);
+}
+
+void
+FilteredNormalizer2::normalizeUTF8(uint32_t options, const char *src, int32_t length,
+ ByteSink &sink, Edits *edits,
+ USetSpanCondition spanCondition,
+ UErrorCode &errorCode) const {
+ while (length > 0) {
+ int32_t spanLength = set.spanUTF8(src, length, spanCondition);
+ if (spanCondition == USET_SPAN_NOT_CONTAINED) {
+ if (spanLength != 0) {
+ if (edits != nullptr) {
+ edits->addUnchanged(spanLength);
+ }
+ if ((options & U_OMIT_UNCHANGED_TEXT) == 0) {
+ sink.Append(src, spanLength);
+ }
+ }
+ spanCondition = USET_SPAN_SIMPLE;
+ } else {
+ if (spanLength != 0) {
+ // Not norm2.normalizeSecondAndAppend() because we do not want
+ // to modify the non-filter part of dest.
+ norm2.normalizeUTF8(options, StringPiece(src, spanLength), sink, edits, errorCode);
+ if (U_FAILURE(errorCode)) {
+ break;
+ }
+ }
+ spanCondition = USET_SPAN_NOT_CONTAINED;
+ }
+ src += spanLength;
+ length -= spanLength;
+ }
+}
+
UnicodeString &
FilteredNormalizer2::normalizeSecondAndAppend(UnicodeString &first,
const UnicodeString &second,
@@ -196,6 +244,31 @@
return TRUE;
}
+UBool
+FilteredNormalizer2::isNormalizedUTF8(StringPiece sp, UErrorCode &errorCode) const {
+ if(U_FAILURE(errorCode)) {
+ return FALSE;
+ }
+ const char *s = sp.data();
+ int32_t length = sp.length();
+ USetSpanCondition spanCondition = USET_SPAN_SIMPLE;
+ while (length > 0) {
+ int32_t spanLength = set.spanUTF8(s, length, spanCondition);
+ if (spanCondition == USET_SPAN_NOT_CONTAINED) {
+ spanCondition = USET_SPAN_SIMPLE;
+ } else {
+ if (!norm2.isNormalizedUTF8(StringPiece(s, spanLength), errorCode) ||
+ U_FAILURE(errorCode)) {
+ return FALSE;
+ }
+ spanCondition = USET_SPAN_NOT_CONTAINED;
+ }
+ s += spanLength;
+ length -= spanLength;
+ }
+ return TRUE;
+}
+
UNormalizationCheckResult
FilteredNormalizer2::quickCheck(const UnicodeString &s, UErrorCode &errorCode) const {
uprv_checkCanGetBuffer(s, errorCode);
Modified: trunk/Build/source/libs/icu/icu-src/source/common/hash.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/hash.h 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/hash.h 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
******************************************************************************
@@ -33,6 +33,8 @@
inline void init(UHashFunction *keyHash, UKeyComparator *keyComp, UValueComparator *valueComp, UErrorCode& status);
+ inline void initSize(UHashFunction *keyHash, UKeyComparator *keyComp, UValueComparator *valueComp, int32_t size, UErrorCode& status);
+
public:
/**
* Construct a hashtable
@@ -43,6 +45,14 @@
/**
* Construct a hashtable
+ * @param ignoreKeyCase If true, keys are case insensitive.
+ * @param size initial size allocation
+ * @param status Error code
+ */
+ Hashtable(UBool ignoreKeyCase, int32_t size, UErrorCode& status);
+
+ /**
+ * Construct a hashtable
* @param keyComp Comparator for comparing the keys
* @param valueComp Comparator for comparing the values
* @param status Error code
@@ -76,9 +86,9 @@
int32_t puti(const UnicodeString& key, int32_t value, UErrorCode& status);
void* get(const UnicodeString& key) const;
-
+
int32_t geti(const UnicodeString& key) const;
-
+
void* remove(const UnicodeString& key);
int32_t removei(const UnicodeString& key);
@@ -92,9 +102,9 @@
* @see uhash_nextElement
*/
const UHashElement* nextElement(int32_t& pos) const;
-
+
UKeyComparator* setKeyComparator(UKeyComparator*keyComp);
-
+
UValueComparator* setValueComparator(UValueComparator* valueComp);
UBool equals(const Hashtable& that) const;
@@ -107,7 +117,7 @@
* Implementation
********************************************************************/
-inline void Hashtable::init(UHashFunction *keyHash, UKeyComparator *keyComp,
+inline void Hashtable::init(UHashFunction *keyHash, UKeyComparator *keyComp,
UValueComparator *valueComp, UErrorCode& status) {
if (U_FAILURE(status)) {
return;
@@ -119,10 +129,23 @@
}
}
-inline Hashtable::Hashtable(UKeyComparator *keyComp, UValueComparator *valueComp,
+inline void Hashtable::initSize(UHashFunction *keyHash, UKeyComparator *keyComp,
+ UValueComparator *valueComp, int32_t size, UErrorCode& status) {
+ if (U_FAILURE(status)) {
+ return;
+ }
+ uhash_initSize(&hashObj, keyHash, keyComp, valueComp, size, &status);
+ if (U_SUCCESS(status)) {
+ hash = &hashObj;
+ uhash_setKeyDeleter(hash, uprv_deleteUObject);
+ }
+}
+
+inline Hashtable::Hashtable(UKeyComparator *keyComp, UValueComparator *valueComp,
UErrorCode& status) : hash(0) {
init( uhash_hashUnicodeString, keyComp, valueComp, status);
}
+
inline Hashtable::Hashtable(UBool ignoreKeyCase, UErrorCode& status)
: hash(0)
{
@@ -134,6 +157,17 @@
status);
}
+inline Hashtable::Hashtable(UBool ignoreKeyCase, int32_t size, UErrorCode& status)
+ : hash(0)
+{
+ initSize(ignoreKeyCase ? uhash_hashCaselessUnicodeString
+ : uhash_hashUnicodeString,
+ ignoreKeyCase ? uhash_compareCaselessUnicodeString
+ : uhash_compareUnicodeString,
+ NULL, size,
+ status);
+}
+
inline Hashtable::Hashtable(UErrorCode& status)
: hash(0)
{
@@ -200,7 +234,7 @@
inline UKeyComparator* Hashtable::setKeyComparator(UKeyComparator*keyComp){
return uhash_setKeyComparator(hash, keyComp);
}
-
+
inline UValueComparator* Hashtable::setValueComparator(UValueComparator* valueComp){
return uhash_setValueComparator(hash, valueComp);
}
Deleted: trunk/Build/source/libs/icu/icu-src/source/common/icudataver.c
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/icudataver.c 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/icudataver.c 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,31 +0,0 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-******************************************************************************
-*
-* Copyright (C) 2009-2011, International Business Machines
-* Corporation and others. All Rights Reserved.
-*
-******************************************************************************
-*/
-
-#include "unicode/utypes.h"
-#include "unicode/icudataver.h"
-#include "unicode/ures.h"
-#include "uresimp.h" /* for ures_getVersionByKey */
-
-U_CAPI void U_EXPORT2 u_getDataVersion(UVersionInfo dataVersionFillin, UErrorCode *status) {
- UResourceBundle *icudatares = NULL;
-
- if (U_FAILURE(*status)) {
- return;
- }
-
- if (dataVersionFillin != NULL) {
- icudatares = ures_openDirect(NULL, U_ICU_VERSION_BUNDLE , status);
- if (U_SUCCESS(*status)) {
- ures_getVersionByKey(icudatares, U_ICU_DATA_KEY, dataVersionFillin, status);
- }
- ures_close(icudatares);
- }
-}
Added: trunk/Build/source/libs/icu/icu-src/source/common/icudataver.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/icudataver.cpp (rev 0)
+++ trunk/Build/source/libs/icu/icu-src/source/common/icudataver.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -0,0 +1,31 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+/*
+******************************************************************************
+*
+* Copyright (C) 2009-2011, International Business Machines
+* Corporation and others. All Rights Reserved.
+*
+******************************************************************************
+*/
+
+#include "unicode/utypes.h"
+#include "unicode/icudataver.h"
+#include "unicode/ures.h"
+#include "uresimp.h" /* for ures_getVersionByKey */
+
+U_CAPI void U_EXPORT2 u_getDataVersion(UVersionInfo dataVersionFillin, UErrorCode *status) {
+ UResourceBundle *icudatares = NULL;
+
+ if (U_FAILURE(*status)) {
+ return;
+ }
+
+ if (dataVersionFillin != NULL) {
+ icudatares = ures_openDirect(NULL, U_ICU_VERSION_BUNDLE , status);
+ if (U_SUCCESS(*status)) {
+ ures_getVersionByKey(icudatares, U_ICU_DATA_KEY, dataVersionFillin, status);
+ }
+ ures_close(icudatares);
+ }
+}
Property changes on: trunk/Build/source/libs/icu/icu-src/source/common/icudataver.cpp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Build/source/libs/icu/icu-src/source/common/icuplug.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/icuplug.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/icuplug.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
******************************************************************************
Modified: trunk/Build/source/libs/icu/icu-src/source/common/icuplugimp.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/icuplugimp.h 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/icuplugimp.h 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
******************************************************************************
Modified: trunk/Build/source/libs/icu/icu-src/source/common/listformatter.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/listformatter.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/listformatter.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
@@ -8,7 +8,7 @@
*
*******************************************************************************
* file name: listformatter.cpp
-* encoding: US-ASCII
+* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
@@ -25,6 +25,7 @@
#include "charstr.h"
#include "ucln_cmn.h"
#include "uresimp.h"
+#include "resource.h"
U_NAMESPACE_BEGIN
@@ -62,7 +63,7 @@
static Hashtable* listPatternHash = NULL;
static UMutex listFormatterMutex = U_MUTEX_INITIALIZER;
-static const char *STANDARD_STYLE = "standard";
+static const char STANDARD_STYLE[] = "standard";
U_CDECL_BEGIN
static UBool U_CALLCONV uprv_listformatter_cleanup() {
@@ -78,17 +79,6 @@
U_CDECL_END
-static ListFormatInternal* loadListFormatInternal(
- const Locale& locale,
- const char* style,
- UErrorCode& errorCode);
-
-static void getStringByKey(
- const UResourceBundle* rb,
- const char* key,
- UnicodeString& result,
- UErrorCode& errorCode);
-
ListFormatter::ListFormatter(const ListFormatter& other) :
owned(other.owned), data(other.data) {
if (other.owned != NULL) {
@@ -171,30 +161,107 @@
return result;
}
-static ListFormatInternal* loadListFormatInternal(
+static const UChar solidus = 0x2F;
+static const UChar aliasPrefix[] = { 0x6C,0x69,0x73,0x74,0x50,0x61,0x74,0x74,0x65,0x72,0x6E,0x2F }; // "listPattern/"
+enum {
+ kAliasPrefixLen = UPRV_LENGTHOF(aliasPrefix),
+ kStyleLenMax = 24 // longest currently is 14
+};
+
+struct ListFormatter::ListPatternsSink : public ResourceSink {
+ UnicodeString two, start, middle, end;
+#if ((U_PLATFORM == U_PF_AIX) || (U_PLATFORM == U_PF_OS390)) && (U_CPLUSPLUS_VERSION < 11)
+ char aliasedStyle[kStyleLenMax+1];
+ ListPatternsSink() {
+ uprv_memset(aliasedStyle, 0, kStyleLenMax+1);
+ }
+#else
+ char aliasedStyle[kStyleLenMax+1] = {0};
+
+ ListPatternsSink() {}
+#endif
+ virtual ~ListPatternsSink();
+
+ void setAliasedStyle(UnicodeString alias) {
+ int32_t startIndex = alias.indexOf(aliasPrefix, kAliasPrefixLen, 0);
+ if (startIndex < 0) {
+ return;
+ }
+ startIndex += kAliasPrefixLen;
+ int32_t endIndex = alias.indexOf(solidus, startIndex);
+ if (endIndex < 0) {
+ endIndex = alias.length();
+ }
+ alias.extract(startIndex, endIndex-startIndex, aliasedStyle, kStyleLenMax+1, US_INV);
+ aliasedStyle[kStyleLenMax] = 0;
+ }
+
+ void handleValueForPattern(ResourceValue &value, UnicodeString &pattern, UErrorCode &errorCode) {
+ if (pattern.isEmpty()) {
+ if (value.getType() == URES_ALIAS) {
+ if (aliasedStyle[0] == 0) {
+ setAliasedStyle(value.getAliasUnicodeString(errorCode));
+ }
+ } else {
+ pattern = value.getUnicodeString(errorCode);
+ }
+ }
+ }
+
+ virtual void put(const char *key, ResourceValue &value, UBool /*noFallback*/,
+ UErrorCode &errorCode) {
+ aliasedStyle[0] = 0;
+ if (value.getType() == URES_ALIAS) {
+ setAliasedStyle(value.getAliasUnicodeString(errorCode));
+ return;
+ }
+ ResourceTable listPatterns = value.getTable(errorCode);
+ for (int i = 0; U_SUCCESS(errorCode) && listPatterns.getKeyAndValue(i, key, value); ++i) {
+ if (uprv_strcmp(key, "2") == 0) {
+ handleValueForPattern(value, two, errorCode);
+ } else if (uprv_strcmp(key, "end") == 0) {
+ handleValueForPattern(value, end, errorCode);
+ } else if (uprv_strcmp(key, "middle") == 0) {
+ handleValueForPattern(value, middle, errorCode);
+ } else if (uprv_strcmp(key, "start") == 0) {
+ handleValueForPattern(value, start, errorCode);
+ }
+ }
+ }
+};
+
+// Virtual destructors must be defined out of line.
+ListFormatter::ListPatternsSink::~ListPatternsSink() {}
+
+ListFormatInternal* ListFormatter::loadListFormatInternal(
const Locale& locale, const char * style, UErrorCode& errorCode) {
UResourceBundle* rb = ures_open(NULL, locale.getName(), &errorCode);
+ rb = ures_getByKeyWithFallback(rb, "listPattern", rb, &errorCode);
if (U_FAILURE(errorCode)) {
ures_close(rb);
return NULL;
}
- rb = ures_getByKeyWithFallback(rb, "listPattern", rb, &errorCode);
- rb = ures_getByKeyWithFallback(rb, style, rb, &errorCode);
+ ListFormatter::ListPatternsSink sink;
+ char currentStyle[kStyleLenMax+1];
+ uprv_strncpy(currentStyle, style, kStyleLenMax);
+ currentStyle[kStyleLenMax] = 0;
- if (U_FAILURE(errorCode)) {
- ures_close(rb);
- return NULL;
+ for (;;) {
+ ures_getAllItemsWithFallback(rb, currentStyle, sink, errorCode);
+ if (U_FAILURE(errorCode) || sink.aliasedStyle[0] == 0 || uprv_strcmp(currentStyle, sink.aliasedStyle) == 0) {
+ break;
+ }
+ uprv_strcpy(currentStyle, sink.aliasedStyle);
}
- UnicodeString two, start, middle, end;
- getStringByKey(rb, "2", two, errorCode);
- getStringByKey(rb, "start", start, errorCode);
- getStringByKey(rb, "middle", middle, errorCode);
- getStringByKey(rb, "end", end, errorCode);
ures_close(rb);
if (U_FAILURE(errorCode)) {
return NULL;
}
- ListFormatInternal* result = new ListFormatInternal(two, start, middle, end, errorCode);
+ if (sink.two.isEmpty() || sink.start.isEmpty() || sink.middle.isEmpty() || sink.end.isEmpty()) {
+ errorCode = U_MISSING_RESOURCE_ERROR;
+ return NULL;
+ }
+ ListFormatInternal* result = new ListFormatInternal(sink.two, sink.start, sink.middle, sink.end, errorCode);
if (result == NULL) {
errorCode = U_MEMORY_ALLOCATION_ERROR;
return NULL;
@@ -206,15 +273,6 @@
return result;
}
-static void getStringByKey(const UResourceBundle* rb, const char* key, UnicodeString& result, UErrorCode& errorCode) {
- int32_t len;
- const UChar* ustr = ures_getStringByKeyWithFallback(rb, key, &len, &errorCode);
- if (U_FAILURE(errorCode)) {
- return;
- }
- result.setTo(ustr, len);
-}
-
ListFormatter* ListFormatter::createInstance(UErrorCode& errorCode) {
Locale locale; // The default locale.
return createInstance(locale, errorCode);
Modified: trunk/Build/source/libs/icu/icu-src/source/common/loadednormalizer2impl.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/loadednormalizer2impl.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/loadednormalizer2impl.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
@@ -62,7 +62,7 @@
pInfo->dataFormat[1]==0x72 &&
pInfo->dataFormat[2]==0x6d &&
pInfo->dataFormat[3]==0x32 &&
- pInfo->formatVersion[0]==2
+ pInfo->formatVersion[0]==3
) {
// Normalizer2Impl *me=(Normalizer2Impl *)context;
// uprv_memcpy(me->dataVersion, pInfo->dataVersion, 4);
@@ -84,7 +84,7 @@
const uint8_t *inBytes=(const uint8_t *)udata_getMemory(memory);
const int32_t *inIndexes=(const int32_t *)inBytes;
int32_t indexesLength=inIndexes[IX_NORM_TRIE_OFFSET]/4;
- if(indexesLength<=IX_MIN_MAYBE_YES) {
+ if(indexesLength<=IX_MIN_LCCC_CP) {
errorCode=U_INVALID_FORMAT_ERROR; // Not enough indexes.
return;
}
@@ -232,6 +232,7 @@
}
}
if(allModes==NULL) {
+ ucln_common_registerCleanup(UCLN_COMMON_LOADED_NORMALIZER2, uprv_loaded_normalizer2_cleanup);
LocalPointer<Norm2AllModes> localAllModes(
Norm2AllModes::createInstance(packageName, name, errorCode));
if(U_SUCCESS(errorCode)) {
Modified: trunk/Build/source/libs/icu/icu-src/source/common/localsvc.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/localsvc.h 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/localsvc.h 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
***************************************************************************
Modified: trunk/Build/source/libs/icu/icu-src/source/common/locavailable.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locavailable.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locavailable.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
@@ -8,7 +8,7 @@
*
*******************************************************************************
* file name: locavailable.cpp
-* encoding: US-ASCII
+* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
@@ -35,7 +35,7 @@
static icu::Locale* availableLocaleList = NULL;
static int32_t availableLocaleListCount;
-static icu::UInitOnce gInitOnce = U_INITONCE_INITIALIZER;
+static icu::UInitOnce gInitOnceLocale = U_INITONCE_INITIALIZER;
U_NAMESPACE_END
@@ -50,7 +50,7 @@
availableLocaleList = NULL;
}
availableLocaleListCount = 0;
- gInitOnce.reset();
+ gInitOnceLocale.reset();
return TRUE;
}
@@ -81,7 +81,7 @@
const Locale* U_EXPORT2
Locale::getAvailableLocales(int32_t& count)
{
- umtx_initOnce(gInitOnce, &locale_available_init);
+ umtx_initOnce(gInitOnceLocale, &locale_available_init);
count = availableLocaleListCount;
return availableLocaleList;
}
Modified: trunk/Build/source/libs/icu/icu-src/source/common/locbased.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locbased.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locbased.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
**********************************************************************
Modified: trunk/Build/source/libs/icu/icu-src/source/common/locbased.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locbased.h 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locbased.h 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
**********************************************************************
Modified: trunk/Build/source/libs/icu/icu-src/source/common/locdispnames.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locdispnames.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locdispnames.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
@@ -8,7 +8,7 @@
*
*******************************************************************************
* file name: locdispnames.cpp
-* encoding: US-ASCII
+* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
@@ -542,7 +542,7 @@
return 0;
}
separator = (const UChar *)p0 + subLen;
- sepLen = p1 - separator;
+ sepLen = static_cast<int32_t>(p1 - separator);
}
if(patLen==0 || (patLen==defaultPatLen && !u_strncmp(pattern, defaultPattern, patLen))) {
@@ -558,8 +558,8 @@
*pErrorCode=U_ILLEGAL_ARGUMENT_ERROR;
return 0;
}
- sub0Pos=p0-pattern;
- sub1Pos=p1-pattern;
+ sub0Pos = static_cast<int32_t>(p0-pattern);
+ sub1Pos = static_cast<int32_t>(p1-pattern);
if (sub1Pos < sub0Pos) { /* a very odd pattern */
int32_t t=sub0Pos; sub0Pos=sub1Pos; sub1Pos=t;
langi=1;
@@ -821,6 +821,8 @@
/* get the keyword value */
keywordValue[0]=0;
keywordValueLen = uloc_getKeywordValue(locale, keyword, keywordValue, capacity, status);
+ if (*status == U_STRING_NOT_TERMINATED_WARNING)
+ *status = U_BUFFER_OVERFLOW_ERROR;
/*
* if the keyword is equal to currency .. then to get the display name
Modified: trunk/Build/source/libs/icu/icu-src/source/common/locdspnm.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locdspnm.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locdspnm.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
@@ -13,6 +13,7 @@
#include "unicode/locdspnm.h"
#include "unicode/simpleformatter.h"
+#include "unicode/ucasemap.h"
#include "unicode/ures.h"
#include "unicode/udisplaycontext.h"
#include "unicode/brkiter.h"
@@ -53,7 +54,7 @@
*p = 0;
va_end(args);
- return p - buffer;
+ return static_cast<int32_t>(p - buffer);
}
U_NAMESPACE_BEGIN
@@ -635,8 +636,9 @@
char value[ULOC_KEYWORD_AND_VALUES_CAPACITY]; // sigh, no ULOC_VALUE_CAPACITY
const char* key;
while ((key = e->next((int32_t *)0, status)) != NULL) {
+ value[0] = 0;
locale.getKeywordValue(key, value, ULOC_KEYWORD_AND_VALUES_CAPACITY, status);
- if (U_FAILURE(status)) {
+ if (U_FAILURE(status) || status == U_STRING_NOT_TERMINATED_WARNING) {
return result;
}
keyDisplayName(key, temp, TRUE);
Modified: trunk/Build/source/libs/icu/icu-src/source/common/locid.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locid.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locid.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
**********************************************************************
@@ -33,6 +33,7 @@
#include "unicode/locid.h"
+#include "unicode/strenum.h"
#include "unicode/uloc.h"
#include "putilimp.h"
#include "mutex.h"
Modified: trunk/Build/source/libs/icu/icu-src/source/common/loclikely.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/loclikely.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/loclikely.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
@@ -8,7 +8,7 @@
*
*******************************************************************************
* file name: loclikely.cpp
-* encoding: US-ASCII
+* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
@@ -22,6 +22,7 @@
#include "unicode/utypes.h"
#include "unicode/locid.h"
#include "unicode/putil.h"
+#include "unicode/uchar.h"
#include "unicode/uloc.h"
#include "unicode/ures.h"
#include "unicode/uscript.h"
@@ -510,7 +511,7 @@
unknownLanguage);
*langLength = (int32_t)uprv_strlen(lang);
}
- else if (_isIDSeparator(*position)) {
+ if (_isIDSeparator(*position)) {
++position;
}
@@ -1280,7 +1281,7 @@
// Pairs of (language subtag, + or -) for finding out fast if common languages
// are LTR (minus) or RTL (plus).
-static const char* LANG_DIR_STRING =
+static const char LANG_DIR_STRING[] =
"root-en-es-pt-zh-ja-ko-de-fr-it-ar+he+fa+ru-nl-pl-th-tr-";
// Implemented here because this calls uloc_addLikelySubtags().
Deleted: trunk/Build/source/libs/icu/icu-src/source/common/locmap.c
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locmap.c 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locmap.c 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,1175 +0,0 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
- **********************************************************************
- * Copyright (C) 1996-2016, International Business Machines
- * Corporation and others. All Rights Reserved.
- **********************************************************************
- *
- * Provides functionality for mapping between
- * LCID and Posix IDs or ICU locale to codepage
- *
- * Note: All classes and code in this file are
- * intended for internal use only.
- *
- * Methods of interest:
- * unsigned long convertToLCID(const char*);
- * const char* convertToPosix(unsigned long);
- *
- * Kathleen Wilson, 4/30/96
- *
- * Date Name Description
- * 3/11/97 aliu Fixed off-by-one bug in assignment operator. Added
- * setId() method and safety check against
- * MAX_ID_LENGTH.
- * 04/23/99 stephen Added C wrapper for convertToPosix.
- * 09/18/00 george Removed the memory leaks.
- * 08/23/01 george Convert to C
- */
-
-#include "locmap.h"
-#include "cstring.h"
-#include "cmemory.h"
-
-#if U_PLATFORM == U_PF_WINDOWS && defined(_MSC_VER) && (_MSC_VER >= 1500)
-/*
- * TODO: It seems like we should widen this to
- * either U_PLATFORM_USES_ONLY_WIN32_API (includes MinGW)
- * or U_PLATFORM_HAS_WIN32_API (includes MinGW and Cygwin)
- * but those use gcc and won't have defined(_MSC_VER).
- * We might need to #include some Windows header and test for some version macro from there.
- * Or call some Windows function and see what it returns.
- */
-#define USE_WINDOWS_LOCALE_API
-#endif
-
-#ifdef USE_WINDOWS_LOCALE_API
-#include <windows.h>
-#include <winnls.h>
-#endif
-
-/*
- * Note:
- * The mapping from Win32 locale ID numbers to POSIX locale strings should
- * be the faster one.
- *
- * Many LCID values come from winnt.h
- * Some also come from http://www.microsoft.com/globaldev/reference/lcid-all.mspx
- */
-
-/*
-////////////////////////////////////////////////
-//
-// Internal Classes for LCID <--> POSIX Mapping
-//
-/////////////////////////////////////////////////
-*/
-
-typedef struct ILcidPosixElement
-{
- const uint32_t hostID;
- const char * const posixID;
-} ILcidPosixElement;
-
-typedef struct ILcidPosixMap
-{
- const uint32_t numRegions;
- const struct ILcidPosixElement* const regionMaps;
-} ILcidPosixMap;
-
-
-/*
-/////////////////////////////////////////////////
-//
-// Easy macros to make the LCID <--> POSIX Mapping
-//
-/////////////////////////////////////////////////
-*/
-
-/**
- * The standard one language/one country mapping for LCID.
- * The first element must be the language, and the following
- * elements are the language with the country.
- * @param hostID LCID in host format such as 0x044d
- * @param languageID posix ID of just the language such as 'de'
- * @param posixID posix ID of the language_TERRITORY such as 'de_CH'
- */
-#define ILCID_POSIX_ELEMENT_ARRAY(hostID, languageID, posixID) \
-static const ILcidPosixElement locmap_ ## languageID [] = { \
- {LANGUAGE_LCID(hostID), #languageID}, /* parent locale */ \
- {hostID, #posixID}, \
-};
-
-/**
- * Define a subtable by ID
- * @param id the POSIX ID, either a language or language_TERRITORY
- */
-#define ILCID_POSIX_SUBTABLE(id) \
-static const ILcidPosixElement locmap_ ## id [] =
-
-
-/**
- * Create the map for the posixID. This macro supposes that the language string
- * name is the same as the global variable name, and that the first element
- * in the ILcidPosixElement is just the language.
- * @param _posixID the full POSIX ID for this entry.
- */
-#define ILCID_POSIX_MAP(_posixID) \
- {UPRV_LENGTHOF(locmap_ ## _posixID), locmap_ ## _posixID}
-
-/*
-////////////////////////////////////////////
-//
-// Create the table of LCID to POSIX Mapping
-// None of it should be dynamically created.
-//
-// Keep static locale variables inside the function so that
-// it can be created properly during static init.
-//
-// Note: This table should be updated periodically. Check the National Lanaguage Support API Reference Website.
-// Microsoft is moving away from LCID in favor of locale name as of Vista. This table needs to be
-// maintained for support of older Windows version.
-// Update: Windows 7 (091130)
-//
-// Note: Microsoft assign a different LCID if a locale has a sorting variant. POSIX IDs below may contain
-// @collation=XXX, but no other keywords are allowed (at least for now). When uprv_convertToLCID() is
-// called from uloc_getLCID(), keywords other than collation are already removed. If we really need
-// to support other keywords in this mapping data, we must update the implementation.
-////////////////////////////////////////////
-*/
-
-ILCID_POSIX_ELEMENT_ARRAY(0x0436, af, af_ZA)
-
-ILCID_POSIX_SUBTABLE(ar) {
- {0x01, "ar"},
- {0x3801, "ar_AE"},
- {0x3c01, "ar_BH"},
- {0x1401, "ar_DZ"},
- {0x0c01, "ar_EG"},
- {0x0801, "ar_IQ"},
- {0x2c01, "ar_JO"},
- {0x3401, "ar_KW"},
- {0x3001, "ar_LB"},
- {0x1001, "ar_LY"},
- {0x1801, "ar_MA"},
- {0x1801, "ar_MO"},
- {0x2001, "ar_OM"},
- {0x4001, "ar_QA"},
- {0x0401, "ar_SA"},
- {0x2801, "ar_SY"},
- {0x1c01, "ar_TN"},
- {0x2401, "ar_YE"}
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x044d, as, as_IN)
-ILCID_POSIX_ELEMENT_ARRAY(0x045e, am, am_ET)
-ILCID_POSIX_ELEMENT_ARRAY(0x047a, arn,arn_CL)
-
-ILCID_POSIX_SUBTABLE(az) {
- {0x2c, "az"},
- {0x082c, "az_Cyrl_AZ"}, /* Cyrillic based */
- {0x742c, "az_Cyrl"}, /* Cyrillic based */
- {0x042c, "az_Latn_AZ"}, /* Latin based */
- {0x782c, "az_Latn"}, /* Latin based */
- {0x042c, "az_AZ"} /* Latin based */
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x046d, ba, ba_RU)
-ILCID_POSIX_ELEMENT_ARRAY(0x0423, be, be_BY)
-
-/*ILCID_POSIX_SUBTABLE(ber) {
- {0x5f, "ber"},
- {0x045f, "ber_Arab_DZ"},
- {0x045f, "ber_Arab"},
- {0x085f, "ber_Latn_DZ"},
- {0x085f, "ber_Latn"}
-};*/
-
-ILCID_POSIX_ELEMENT_ARRAY(0x0402, bg, bg_BG)
-
-ILCID_POSIX_ELEMENT_ARRAY(0x0466, bin, bin_NG)
-
-ILCID_POSIX_SUBTABLE(bn) {
- {0x45, "bn"},
- {0x0845, "bn_BD"},
- {0x0445, "bn_IN"}
-};
-
-ILCID_POSIX_SUBTABLE(bo) {
- {0x51, "bo"},
- {0x0851, "bo_BT"},
- {0x0451, "bo_CN"},
- {0x0c51, "dz_BT"}
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x047e, br, br_FR)
-
-ILCID_POSIX_SUBTABLE(ca) {
- {0x03, "ca"},
- {0x0403, "ca_ES"},
- {0x0803, "ca_ES_VALENCIA"}
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x0483, co, co_FR)
-ILCID_POSIX_ELEMENT_ARRAY(0x045c, chr,chr_US)
-
-ILCID_POSIX_SUBTABLE(ckb) {
- {0x92, "ckb"},
- {0x7c92, "ckb_Arab"},
- {0x0492, "ckb_Arab_IQ"}
-};
-
-/* Declared as cs_CZ to get around compiler errors on z/OS, which defines cs as a function */
-ILCID_POSIX_ELEMENT_ARRAY(0x0405, cs, cs_CZ)
-
-ILCID_POSIX_ELEMENT_ARRAY(0x0452, cy, cy_GB)
-ILCID_POSIX_ELEMENT_ARRAY(0x0406, da, da_DK)
-
-ILCID_POSIX_SUBTABLE(de) {
- {0x07, "de"},
- {0x0c07, "de_AT"},
- {0x0807, "de_CH"},
- {0x0407, "de_DE"},
- {0x1407, "de_LI"},
- {0x1007, "de_LU"},
- {0x10407,"de_DE at collation=phonebook"}, /*This is really de_DE_PHONEBOOK on Windows*/
- {0x10407,"de at collation=phonebook"} /*This is really de_DE_PHONEBOOK on Windows*/
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x0465, dv, dv_MV)
-ILCID_POSIX_ELEMENT_ARRAY(0x0408, el, el_GR)
-
-ILCID_POSIX_SUBTABLE(en) {
- {0x09, "en"},
- {0x0c09, "en_AU"},
- {0x2809, "en_BZ"},
- {0x1009, "en_CA"},
- {0x0809, "en_GB"},
- {0x3c09, "en_HK"},
- {0x3809, "en_ID"},
- {0x1809, "en_IE"},
- {0x4009, "en_IN"},
- {0x2009, "en_JM"},
- {0x4409, "en_MY"},
- {0x1409, "en_NZ"},
- {0x3409, "en_PH"},
- {0x4809, "en_SG"},
- {0x2C09, "en_TT"},
- {0x0409, "en_US"},
- {0x007f, "en_US_POSIX"}, /* duplicate for roundtripping */
- {0x2409, "en_VI"}, /* Virgin Islands AKA Caribbean Islands (en_CB). */
- {0x1c09, "en_ZA"},
- {0x3009, "en_ZW"},
- {0x2409, "en_029"},
- {0x0409, "en_AS"}, /* Alias for en_US. Leave last. */
- {0x0409, "en_GU"}, /* Alias for en_US. Leave last. */
- {0x0409, "en_MH"}, /* Alias for en_US. Leave last. */
- {0x0409, "en_MP"}, /* Alias for en_US. Leave last. */
- {0x0409, "en_UM"} /* Alias for en_US. Leave last. */
-};
-
-ILCID_POSIX_SUBTABLE(en_US_POSIX) {
- {0x007f, "en_US_POSIX"} /* duplicate for roundtripping */
-};
-
-ILCID_POSIX_SUBTABLE(es) {
- {0x0a, "es"},
- {0x2c0a, "es_AR"},
- {0x400a, "es_BO"},
- {0x340a, "es_CL"},
- {0x240a, "es_CO"},
- {0x140a, "es_CR"},
- {0x5c0a, "es_CU"},
- {0x1c0a, "es_DO"},
- {0x300a, "es_EC"},
- {0x0c0a, "es_ES"}, /*Modern sort.*/
- {0x100a, "es_GT"},
- {0x480a, "es_HN"},
- {0x080a, "es_MX"},
- {0x4c0a, "es_NI"},
- {0x180a, "es_PA"},
- {0x280a, "es_PE"},
- {0x500a, "es_PR"},
- {0x3c0a, "es_PY"},
- {0x440a, "es_SV"},
- {0x540a, "es_US"},
- {0x380a, "es_UY"},
- {0x200a, "es_VE"},
- {0x580a, "es_419"},
- {0x040a, "es_ES at collation=traditional"},
- {0x040a, "es at collation=traditional"}
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x0425, et, et_EE)
-ILCID_POSIX_ELEMENT_ARRAY(0x042d, eu, eu_ES)
-
-/* ISO-639 doesn't distinguish between Persian and Dari.*/
-ILCID_POSIX_SUBTABLE(fa) {
- {0x29, "fa"},
- {0x0429, "fa_IR"}, /* Persian/Farsi (Iran) */
- {0x048c, "fa_AF"} /* Persian/Dari (Afghanistan) */
-};
-
-/* duplicate for roundtripping */
-ILCID_POSIX_SUBTABLE(fa_AF) {
- {0x8c, "fa_AF"}, /* Persian/Dari (Afghanistan) */
- {0x048c, "fa_AF"} /* Persian/Dari (Afghanistan) */
-};
-
-ILCID_POSIX_SUBTABLE(ff) {
- {0x67, "ff"},
- {0x7c67, "ff_Latn"},
- {0x0867, "ff_Latn_SN"},
- {0x0467, "ff_NG"}
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x040b, fi, fi_FI)
-ILCID_POSIX_ELEMENT_ARRAY(0x0464, fil,fil_PH)
-ILCID_POSIX_ELEMENT_ARRAY(0x0438, fo, fo_FO)
-
-ILCID_POSIX_SUBTABLE(fr) {
- {0x0c, "fr"},
- {0x080c, "fr_BE"},
- {0x0c0c, "fr_CA"},
- {0x240c, "fr_CD"},
- {0x240c, "fr_CG"},
- {0x100c, "fr_CH"},
- {0x300c, "fr_CI"},
- {0x2c0c, "fr_CM"},
- {0x040c, "fr_FR"},
- {0x3c0c, "fr_HT"},
- {0x140c, "fr_LU"},
- {0x380c, "fr_MA"},
- {0x180c, "fr_MC"},
- {0x340c, "fr_ML"},
- {0x200c, "fr_RE"},
- {0x280c, "fr_SN"},
- {0xe40c, "fr_015"},
- {0x1c0c, "fr_029"}
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x0467, fuv, fuv_NG)
-
-ILCID_POSIX_ELEMENT_ARRAY(0x0462, fy, fy_NL)
-
-ILCID_POSIX_SUBTABLE(ga) { /* Gaelic (Ireland) */
- {0x3c, "ga"},
- {0x083c, "ga_IE"},
- {0x043c, "gd_GB"}
-};
-
-ILCID_POSIX_SUBTABLE(gd) { /* Gaelic (Scotland) */
- {0x91, "gd"},
- {0x0491, "gd_GB"}
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x0456, gl, gl_ES)
-ILCID_POSIX_ELEMENT_ARRAY(0x0447, gu, gu_IN)
-ILCID_POSIX_ELEMENT_ARRAY(0x0474, gn, gn_PY)
-ILCID_POSIX_ELEMENT_ARRAY(0x0484, gsw,gsw_FR)
-
-ILCID_POSIX_SUBTABLE(ha) {
- {0x68, "ha"},
- {0x7c68, "ha_Latn"},
- {0x0468, "ha_Latn_NG"},
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x0475, haw,haw_US)
-ILCID_POSIX_ELEMENT_ARRAY(0x040d, he, he_IL)
-ILCID_POSIX_ELEMENT_ARRAY(0x0439, hi, hi_IN)
-
-/* This LCID is really four different locales.*/
-ILCID_POSIX_SUBTABLE(hr) {
- {0x1a, "hr"},
- {0x141a, "bs_Latn_BA"}, /* Bosnian, Bosnia and Herzegovina */
- {0x681a, "bs_Latn"}, /* Bosnian, Bosnia and Herzegovina */
- {0x141a, "bs_BA"}, /* Bosnian, Bosnia and Herzegovina */
- {0x781a, "bs"}, /* Bosnian */
- {0x201a, "bs_Cyrl_BA"}, /* Bosnian, Bosnia and Herzegovina */
- {0x641a, "bs_Cyrl"}, /* Bosnian, Bosnia and Herzegovina */
- {0x101a, "hr_BA"}, /* Croatian in Bosnia */
- {0x041a, "hr_HR"}, /* Croatian*/
- {0x2c1a, "sr_Latn_ME"},
- {0x241a, "sr_Latn_RS"},
- {0x181a, "sr_Latn_BA"}, /* Serbo-Croatian in Bosnia */
- {0x081a, "sr_Latn_CS"}, /* Serbo-Croatian*/
- {0x701a, "sr_Latn"}, /* It's 0x1a or 0x081a, pick one to make the test program happy. */
- {0x1c1a, "sr_Cyrl_BA"}, /* Serbo-Croatian in Bosnia */
- {0x0c1a, "sr_Cyrl_CS"}, /* Serbian*/
- {0x301a, "sr_Cyrl_ME"},
- {0x281a, "sr_Cyrl_RS"},
- {0x6c1a, "sr_Cyrl"}, /* It's 0x1a or 0x0c1a, pick one to make the test program happy. */
- {0x7c1a, "sr"} /* In CLDR sr is sr_Cyrl. */
-};
-
-ILCID_POSIX_SUBTABLE(hsb) {
- {0x2E, "hsb"},
- {0x042E, "hsb_DE"},
- {0x082E, "dsb_DE"},
- {0x7C2E, "dsb"},
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x040e, hu, hu_HU)
-ILCID_POSIX_ELEMENT_ARRAY(0x042b, hy, hy_AM)
-ILCID_POSIX_ELEMENT_ARRAY(0x0469, ibb, ibb_NG)
-ILCID_POSIX_ELEMENT_ARRAY(0x0421, id, id_ID)
-ILCID_POSIX_ELEMENT_ARRAY(0x0470, ig, ig_NG)
-ILCID_POSIX_ELEMENT_ARRAY(0x0478, ii, ii_CN)
-ILCID_POSIX_ELEMENT_ARRAY(0x040f, is, is_IS)
-
-ILCID_POSIX_SUBTABLE(it) {
- {0x10, "it"},
- {0x0810, "it_CH"},
- {0x0410, "it_IT"}
-};
-
-ILCID_POSIX_SUBTABLE(iu) {
- {0x5d, "iu"},
- {0x045d, "iu_Cans_CA"},
- {0x785d, "iu_Cans"},
- {0x085d, "iu_Latn_CA"},
- {0x7c5d, "iu_Latn"}
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x040d, iw, iw_IL) /*Left in for compatibility*/
-ILCID_POSIX_ELEMENT_ARRAY(0x0411, ja, ja_JP)
-ILCID_POSIX_ELEMENT_ARRAY(0x0437, ka, ka_GE)
-ILCID_POSIX_ELEMENT_ARRAY(0x043f, kk, kk_KZ)
-ILCID_POSIX_ELEMENT_ARRAY(0x046f, kl, kl_GL)
-ILCID_POSIX_ELEMENT_ARRAY(0x0453, km, km_KH)
-ILCID_POSIX_ELEMENT_ARRAY(0x044b, kn, kn_IN)
-
-ILCID_POSIX_SUBTABLE(ko) {
- {0x12, "ko"},
- {0x0812, "ko_KP"},
- {0x0412, "ko_KR"}
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x0457, kok, kok_IN)
-ILCID_POSIX_ELEMENT_ARRAY(0x0471, kr, kr_NG)
-
-ILCID_POSIX_SUBTABLE(ks) { /* We could add PK and CN too */
- {0x60, "ks"},
- {0x0860, "ks_IN"}, /* Documentation doesn't mention script */
- {0x0460, "ks_Arab_IN"},
- {0x0860, "ks_Deva_IN"}
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x0440, ky, ky_KG) /* Kyrgyz is spoken in Kyrgyzstan */
-ILCID_POSIX_ELEMENT_ARRAY(0x0476, la, la_IT) /* TODO: Verify the country */
-ILCID_POSIX_ELEMENT_ARRAY(0x046e, lb, lb_LU)
-ILCID_POSIX_ELEMENT_ARRAY(0x0454, lo, lo_LA)
-ILCID_POSIX_ELEMENT_ARRAY(0x0427, lt, lt_LT)
-ILCID_POSIX_ELEMENT_ARRAY(0x0426, lv, lv_LV)
-ILCID_POSIX_ELEMENT_ARRAY(0x0481, mi, mi_NZ)
-ILCID_POSIX_ELEMENT_ARRAY(0x042f, mk, mk_MK)
-ILCID_POSIX_ELEMENT_ARRAY(0x044c, ml, ml_IN)
-
-ILCID_POSIX_SUBTABLE(mn) {
- {0x50, "mn"},
- {0x0450, "mn_MN"},
- {0x7c50, "mn_Mong"},
- {0x0850, "mn_Mong_CN"},
- {0x0850, "mn_CN"},
- {0x7850, "mn_Cyrl"},
- {0x0c50, "mn_Mong_MN"}
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x0458, mni,mni_IN)
-ILCID_POSIX_ELEMENT_ARRAY(0x047c, moh,moh_CA)
-ILCID_POSIX_ELEMENT_ARRAY(0x044e, mr, mr_IN)
-
-ILCID_POSIX_SUBTABLE(ms) {
- {0x3e, "ms"},
- {0x083e, "ms_BN"}, /* Brunei Darussalam*/
- {0x043e, "ms_MY"} /* Malaysia*/
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x043a, mt, mt_MT)
-ILCID_POSIX_ELEMENT_ARRAY(0x0455, my, my_MM)
-
-ILCID_POSIX_SUBTABLE(ne) {
- {0x61, "ne"},
- {0x0861, "ne_IN"}, /* India*/
- {0x0461, "ne_NP"} /* Nepal*/
-};
-
-ILCID_POSIX_SUBTABLE(nl) {
- {0x13, "nl"},
- {0x0813, "nl_BE"},
- {0x0413, "nl_NL"}
-};
-
-/* The "no" locale split into nb and nn. By default in ICU, "no" is nb.*/
-ILCID_POSIX_SUBTABLE(no) {
- {0x14, "no"}, /* really nb_NO */
- {0x7c14, "nb"}, /* really nb */
- {0x0414, "nb_NO"}, /* really nb_NO. Keep first in the 414 list. */
- {0x0414, "no_NO"}, /* really nb_NO */
- {0x0814, "nn_NO"}, /* really nn_NO. Keep first in the 814 list. */
- {0x7814, "nn"}, /* It's 0x14 or 0x814, pick one to make the test program happy. */
- {0x0814, "no_NO_NY"}/* really nn_NO */
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x046c, nso,nso_ZA) /* TODO: Verify the ISO-639 code */
-ILCID_POSIX_ELEMENT_ARRAY(0x0482, oc, oc_FR)
-
-ILCID_POSIX_SUBTABLE(om) { /* TODO: Verify the country */
- {0x72, "om"},
- {0x0472, "om_ET"},
- {0x0472, "gaz_ET"}
-};
-
-/* Declared as or_IN to get around compiler errors*/
-ILCID_POSIX_SUBTABLE(or_IN) {
- {0x48, "or"},
- {0x0448, "or_IN"},
-};
-
-
-ILCID_POSIX_SUBTABLE(pa) {
- {0x46, "pa"},
- {0x0446, "pa_IN"},
- {0x0846, "pa_PK"},
- {0x0846, "pa_Arab_PK"}
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x0479, pap, pap_AN)
-ILCID_POSIX_ELEMENT_ARRAY(0x0415, pl, pl_PL)
-ILCID_POSIX_ELEMENT_ARRAY(0x0463, ps, ps_AF)
-
-ILCID_POSIX_SUBTABLE(pt) {
- {0x16, "pt"},
- {0x0416, "pt_BR"},
- {0x0816, "pt_PT"}
-};
-
-ILCID_POSIX_SUBTABLE(qu) {
- {0x6b, "qu"},
- {0x046b, "qu_BO"},
- {0x086b, "qu_EC"},
- {0x0C6b, "qu_PE"},
- {0x046b, "quz_BO"},
- {0x086b, "quz_EC"},
- {0x0C6b, "quz_PE"}
-};
-
-ILCID_POSIX_SUBTABLE(quc) {
- {0x93, "quc"},
- {0x0493, "quc_CO"},
- /*
- "quc_Latn_GT" is an exceptional case. Language ID of "quc"
- is 0x93, but LCID of "quc_Latn_GT" is 0x486, which should be
- under the group of "qut". "qut" is a retired ISO 639-3 language
- code for West Central Quiche, and merged to "quc".
- It looks Windows previously reserved "qut" for K'iche', but,
- decided to use "quc" when adding a locale for K'iche' (Guatemala).
-
- This data structure used here assumes language ID bits in
- LCID is unique for alphabetic language code. But this is not true
- for "quc_Latn_GT". If we don't have the data below, LCID look up
- by alphabetic locale ID (POSIX) will fail. The same entry is found
- under "qut" below, which is required for reverse look up.
- */
- {0x0486, "quc_Latn_GT"}
-};
-
-ILCID_POSIX_SUBTABLE(qut) {
- {0x86, "qut"},
- {0x0486, "qut_GT"},
- /*
- See the note in "quc" above.
- */
- {0x0486, "quc_Latn_GT"}
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x0417, rm, rm_CH)
-
-ILCID_POSIX_SUBTABLE(ro) {
- {0x18, "ro"},
- {0x0418, "ro_RO"},
- {0x0818, "ro_MD"}
-};
-
-ILCID_POSIX_SUBTABLE(root) {
- {0x00, "root"}
-};
-
-ILCID_POSIX_SUBTABLE(ru) {
- {0x19, "ru"},
- {0x0419, "ru_RU"},
- {0x0819, "ru_MD"}
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x0487, rw, rw_RW)
-ILCID_POSIX_ELEMENT_ARRAY(0x044f, sa, sa_IN)
-ILCID_POSIX_ELEMENT_ARRAY(0x0485, sah,sah_RU)
-
-ILCID_POSIX_SUBTABLE(sd) {
- {0x59, "sd"},
- {0x0459, "sd_IN"},
- {0x0459, "sd_Deva_IN"},
- {0x0859, "sd_PK"}
-};
-
-ILCID_POSIX_SUBTABLE(se) {
- {0x3b, "se"},
- {0x0c3b, "se_FI"},
- {0x043b, "se_NO"},
- {0x083b, "se_SE"},
- {0x783b, "sma"},
- {0x183b, "sma_NO"},
- {0x1c3b, "sma_SE"},
- {0x7c3b, "smj"},
- {0x703b, "smn"},
- {0x743b, "sms"},
- {0x103b, "smj_NO"},
- {0x143b, "smj_SE"},
- {0x243b, "smn_FI"},
- {0x203b, "sms_FI"},
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x045b, si, si_LK)
-ILCID_POSIX_ELEMENT_ARRAY(0x041b, sk, sk_SK)
-ILCID_POSIX_ELEMENT_ARRAY(0x0424, sl, sl_SI)
-
-ILCID_POSIX_SUBTABLE(so) { /* TODO: Verify the country */
- {0x77, "so"},
- {0x0477, "so_ET"},
- {0x0477, "so_SO"}
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x041c, sq, sq_AL)
-ILCID_POSIX_ELEMENT_ARRAY(0x0430, st, st_ZA)
-
-ILCID_POSIX_SUBTABLE(sv) {
- {0x1d, "sv"},
- {0x081d, "sv_FI"},
- {0x041d, "sv_SE"}
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x0441, sw, sw_KE)
-ILCID_POSIX_ELEMENT_ARRAY(0x045A, syr, syr_SY)
-
-ILCID_POSIX_SUBTABLE(ta) {
- {0x49, "ta"},
- {0x0449, "ta_IN"},
- {0x0849, "ta_LK"}
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x044a, te, te_IN)
-
-/* Cyrillic based by default */
-ILCID_POSIX_SUBTABLE(tg) {
- {0x28, "tg"},
- {0x7c28, "tg_Cyrl"},
- {0x0428, "tg_Cyrl_TJ"}
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x041e, th, th_TH)
-
-ILCID_POSIX_SUBTABLE(ti) {
- {0x73, "ti"},
- {0x0873, "ti_ER"},
- {0x0473, "ti_ET"}
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x0442, tk, tk_TM)
-
-ILCID_POSIX_SUBTABLE(tn) {
- {0x32, "tn"},
- {0x0832, "tn_BW"},
- {0x0432, "tn_ZA"}
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x041f, tr, tr_TR)
-ILCID_POSIX_ELEMENT_ARRAY(0x0431, ts, ts_ZA)
-ILCID_POSIX_ELEMENT_ARRAY(0x0444, tt, tt_RU)
-
-ILCID_POSIX_SUBTABLE(tzm) {
- {0x5f, "tzm"},
- {0x7c5f, "tzm_Latn"},
- {0x085f, "tzm_Latn_DZ"},
- {0x105f, "tzm_Tfng_MA"},
- {0x045f, "tzm_Arab_MA"},
- {0x045f, "tmz"}
-};
-
-ILCID_POSIX_SUBTABLE(ug) {
- {0x80, "ug"},
- {0x0480, "ug_CN"},
- {0x0480, "ug_Arab_CN"}
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x0422, uk, uk_UA)
-
-ILCID_POSIX_SUBTABLE(ur) {
- {0x20, "ur"},
- {0x0820, "ur_IN"},
- {0x0420, "ur_PK"}
-};
-
-ILCID_POSIX_SUBTABLE(uz) {
- {0x43, "uz"},
- {0x0843, "uz_Cyrl_UZ"}, /* Cyrillic based */
- {0x7843, "uz_Cyrl"}, /* Cyrillic based */
- {0x0843, "uz_UZ"}, /* Cyrillic based */
- {0x0443, "uz_Latn_UZ"}, /* Latin based */
- {0x7c43, "uz_Latn"} /* Latin based */
-};
-
-ILCID_POSIX_SUBTABLE(ve) { /* TODO: Verify the country */
- {0x33, "ve"},
- {0x0433, "ve_ZA"},
- {0x0433, "ven_ZA"}
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x042a, vi, vi_VN)
-ILCID_POSIX_ELEMENT_ARRAY(0x0488, wo, wo_SN)
-ILCID_POSIX_ELEMENT_ARRAY(0x0434, xh, xh_ZA)
-ILCID_POSIX_ELEMENT_ARRAY(0x043d, yi, yi)
-ILCID_POSIX_ELEMENT_ARRAY(0x046a, yo, yo_NG)
-
-ILCID_POSIX_SUBTABLE(zh) {
- {0x0004, "zh_Hans"},
- {0x7804, "zh"},
- {0x0804, "zh_CN"},
- {0x0804, "zh_Hans_CN"},
- {0x0c04, "zh_Hant_HK"},
- {0x0c04, "zh_HK"},
- {0x1404, "zh_Hant_MO"},
- {0x1404, "zh_MO"},
- {0x1004, "zh_Hans_SG"},
- {0x1004, "zh_SG"},
- {0x0404, "zh_Hant_TW"},
- {0x7c04, "zh_Hant"},
- {0x0404, "zh_TW"},
- {0x30404,"zh_Hant_TW"}, /* Bopomofo order */
- {0x30404,"zh_TW"}, /* Bopomofo order */
- {0x20004,"zh at collation=stroke"},
- {0x20404,"zh_Hant at collation=stroke"},
- {0x20404,"zh_Hant_TW at collation=stroke"},
- {0x20404,"zh_TW at collation=stroke"},
- {0x20804,"zh_Hans at collation=stroke"},
- {0x20804,"zh_Hans_CN at collation=stroke"},
- {0x20804,"zh_CN at collation=stroke"}
-};
-
-ILCID_POSIX_ELEMENT_ARRAY(0x0435, zu, zu_ZA)
-
-/* This must be static and grouped by LCID. */
-static const ILcidPosixMap gPosixIDmap[] = {
- ILCID_POSIX_MAP(af), /* af Afrikaans 0x36 */
- ILCID_POSIX_MAP(am), /* am Amharic 0x5e */
- ILCID_POSIX_MAP(ar), /* ar Arabic 0x01 */
- ILCID_POSIX_MAP(arn), /* arn Araucanian/Mapudungun 0x7a */
- ILCID_POSIX_MAP(as), /* as Assamese 0x4d */
- ILCID_POSIX_MAP(az), /* az Azerbaijani 0x2c */
- ILCID_POSIX_MAP(ba), /* ba Bashkir 0x6d */
- ILCID_POSIX_MAP(be), /* be Belarusian 0x23 */
-/* ILCID_POSIX_MAP(ber), ber Berber/Tamazight 0x5f */
- ILCID_POSIX_MAP(bg), /* bg Bulgarian 0x02 */
- ILCID_POSIX_MAP(bin), /* bin Edo 0x66 */
- ILCID_POSIX_MAP(bn), /* bn Bengali; Bangla 0x45 */
- ILCID_POSIX_MAP(bo), /* bo Tibetan 0x51 */
- ILCID_POSIX_MAP(br), /* br Breton 0x7e */
- ILCID_POSIX_MAP(ca), /* ca Catalan 0x03 */
- ILCID_POSIX_MAP(chr), /* chr Cherokee 0x5c */
- ILCID_POSIX_MAP(ckb), /* ckb Sorani (Central Kurdish) 0x92 */
- ILCID_POSIX_MAP(co), /* co Corsican 0x83 */
- ILCID_POSIX_MAP(cs), /* cs Czech 0x05 */
- ILCID_POSIX_MAP(cy), /* cy Welsh 0x52 */
- ILCID_POSIX_MAP(da), /* da Danish 0x06 */
- ILCID_POSIX_MAP(de), /* de German 0x07 */
- ILCID_POSIX_MAP(dv), /* dv Divehi 0x65 */
- ILCID_POSIX_MAP(el), /* el Greek 0x08 */
- ILCID_POSIX_MAP(en), /* en English 0x09 */
- ILCID_POSIX_MAP(en_US_POSIX), /* invariant 0x7f */
- ILCID_POSIX_MAP(es), /* es Spanish 0x0a */
- ILCID_POSIX_MAP(et), /* et Estonian 0x25 */
- ILCID_POSIX_MAP(eu), /* eu Basque 0x2d */
- ILCID_POSIX_MAP(fa), /* fa Persian/Farsi 0x29 */
- ILCID_POSIX_MAP(fa_AF), /* fa Persian/Dari 0x8c */
- ILCID_POSIX_MAP(ff), /* ff Fula 0x67 */
- ILCID_POSIX_MAP(fi), /* fi Finnish 0x0b */
- ILCID_POSIX_MAP(fil), /* fil Filipino 0x64 */
- ILCID_POSIX_MAP(fo), /* fo Faroese 0x38 */
- ILCID_POSIX_MAP(fr), /* fr French 0x0c */
- ILCID_POSIX_MAP(fuv), /* fuv Fulfulde - Nigeria 0x67 */
- ILCID_POSIX_MAP(fy), /* fy Frisian 0x62 */
- ILCID_POSIX_MAP(ga), /* * Gaelic (Ireland,Scotland) 0x3c */
- ILCID_POSIX_MAP(gd), /* gd Gaelic (United Kingdom) 0x91 */
- ILCID_POSIX_MAP(gl), /* gl Galician 0x56 */
- ILCID_POSIX_MAP(gn), /* gn Guarani 0x74 */
- ILCID_POSIX_MAP(gsw), /* gsw Alemanic/Alsatian/Swiss German 0x84 */
- ILCID_POSIX_MAP(gu), /* gu Gujarati 0x47 */
- ILCID_POSIX_MAP(ha), /* ha Hausa 0x68 */
- ILCID_POSIX_MAP(haw), /* haw Hawaiian 0x75 */
- ILCID_POSIX_MAP(he), /* he Hebrew (formerly iw) 0x0d */
- ILCID_POSIX_MAP(hi), /* hi Hindi 0x39 */
- ILCID_POSIX_MAP(hr), /* * Croatian and others 0x1a */
- ILCID_POSIX_MAP(hsb), /* hsb Upper Sorbian 0x2e */
- ILCID_POSIX_MAP(hu), /* hu Hungarian 0x0e */
- ILCID_POSIX_MAP(hy), /* hy Armenian 0x2b */
- ILCID_POSIX_MAP(ibb), /* ibb Ibibio - Nigeria 0x69 */
- ILCID_POSIX_MAP(id), /* id Indonesian (formerly in) 0x21 */
- ILCID_POSIX_MAP(ig), /* ig Igbo 0x70 */
- ILCID_POSIX_MAP(ii), /* ii Sichuan Yi 0x78 */
- ILCID_POSIX_MAP(is), /* is Icelandic 0x0f */
- ILCID_POSIX_MAP(it), /* it Italian 0x10 */
- ILCID_POSIX_MAP(iu), /* iu Inuktitut 0x5d */
- ILCID_POSIX_MAP(iw), /* iw Hebrew 0x0d */
- ILCID_POSIX_MAP(ja), /* ja Japanese 0x11 */
- ILCID_POSIX_MAP(ka), /* ka Georgian 0x37 */
- ILCID_POSIX_MAP(kk), /* kk Kazakh 0x3f */
- ILCID_POSIX_MAP(kl), /* kl Kalaallisut 0x6f */
- ILCID_POSIX_MAP(km), /* km Khmer 0x53 */
- ILCID_POSIX_MAP(kn), /* kn Kannada 0x4b */
- ILCID_POSIX_MAP(ko), /* ko Korean 0x12 */
- ILCID_POSIX_MAP(kok), /* kok Konkani 0x57 */
- ILCID_POSIX_MAP(kr), /* kr Kanuri 0x71 */
- ILCID_POSIX_MAP(ks), /* ks Kashmiri 0x60 */
- ILCID_POSIX_MAP(ky), /* ky Kyrgyz 0x40 */
- ILCID_POSIX_MAP(lb), /* lb Luxembourgish 0x6e */
- ILCID_POSIX_MAP(la), /* la Latin 0x76 */
- ILCID_POSIX_MAP(lo), /* lo Lao 0x54 */
- ILCID_POSIX_MAP(lt), /* lt Lithuanian 0x27 */
- ILCID_POSIX_MAP(lv), /* lv Latvian, Lettish 0x26 */
- ILCID_POSIX_MAP(mi), /* mi Maori 0x81 */
- ILCID_POSIX_MAP(mk), /* mk Macedonian 0x2f */
- ILCID_POSIX_MAP(ml), /* ml Malayalam 0x4c */
- ILCID_POSIX_MAP(mn), /* mn Mongolian 0x50 */
- ILCID_POSIX_MAP(mni), /* mni Manipuri 0x58 */
- ILCID_POSIX_MAP(moh), /* moh Mohawk 0x7c */
- ILCID_POSIX_MAP(mr), /* mr Marathi 0x4e */
- ILCID_POSIX_MAP(ms), /* ms Malay 0x3e */
- ILCID_POSIX_MAP(mt), /* mt Maltese 0x3a */
- ILCID_POSIX_MAP(my), /* my Burmese 0x55 */
-/* ILCID_POSIX_MAP(nb), // no Norwegian 0x14 */
- ILCID_POSIX_MAP(ne), /* ne Nepali 0x61 */
- ILCID_POSIX_MAP(nl), /* nl Dutch 0x13 */
-/* ILCID_POSIX_MAP(nn), // no Norwegian 0x14 */
- ILCID_POSIX_MAP(no), /* * Norwegian 0x14 */
- ILCID_POSIX_MAP(nso), /* nso Sotho, Northern (Sepedi dialect) 0x6c */
- ILCID_POSIX_MAP(oc), /* oc Occitan 0x82 */
- ILCID_POSIX_MAP(om), /* om Oromo 0x72 */
- ILCID_POSIX_MAP(or_IN), /* or Oriya 0x48 */
- ILCID_POSIX_MAP(pa), /* pa Punjabi 0x46 */
- ILCID_POSIX_MAP(pap), /* pap Papiamentu 0x79 */
- ILCID_POSIX_MAP(pl), /* pl Polish 0x15 */
- ILCID_POSIX_MAP(ps), /* ps Pashto 0x63 */
- ILCID_POSIX_MAP(pt), /* pt Portuguese 0x16 */
- ILCID_POSIX_MAP(qu), /* qu Quechua 0x6B */
- ILCID_POSIX_MAP(quc), /* quc K'iche 0x93 */
- ILCID_POSIX_MAP(qut), /* qut K'iche 0x86 */
- ILCID_POSIX_MAP(rm), /* rm Raeto-Romance/Romansh 0x17 */
- ILCID_POSIX_MAP(ro), /* ro Romanian 0x18 */
- ILCID_POSIX_MAP(root), /* root 0x00 */
- ILCID_POSIX_MAP(ru), /* ru Russian 0x19 */
- ILCID_POSIX_MAP(rw), /* rw Kinyarwanda 0x87 */
- ILCID_POSIX_MAP(sa), /* sa Sanskrit 0x4f */
- ILCID_POSIX_MAP(sah), /* sah Yakut 0x85 */
- ILCID_POSIX_MAP(sd), /* sd Sindhi 0x59 */
- ILCID_POSIX_MAP(se), /* se Sami 0x3b */
-/* ILCID_POSIX_MAP(sh), // sh Serbo-Croatian 0x1a */
- ILCID_POSIX_MAP(si), /* si Sinhalese 0x5b */
- ILCID_POSIX_MAP(sk), /* sk Slovak 0x1b */
- ILCID_POSIX_MAP(sl), /* sl Slovenian 0x24 */
- ILCID_POSIX_MAP(so), /* so Somali 0x77 */
- ILCID_POSIX_MAP(sq), /* sq Albanian 0x1c */
-/* ILCID_POSIX_MAP(sr), // sr Serbian 0x1a */
- ILCID_POSIX_MAP(st), /* st Sutu 0x30 */
- ILCID_POSIX_MAP(sv), /* sv Swedish 0x1d */
- ILCID_POSIX_MAP(sw), /* sw Swahili 0x41 */
- ILCID_POSIX_MAP(syr), /* syr Syriac 0x5A */
- ILCID_POSIX_MAP(ta), /* ta Tamil 0x49 */
- ILCID_POSIX_MAP(te), /* te Telugu 0x4a */
- ILCID_POSIX_MAP(tg), /* tg Tajik 0x28 */
- ILCID_POSIX_MAP(th), /* th Thai 0x1e */
- ILCID_POSIX_MAP(ti), /* ti Tigrigna 0x73 */
- ILCID_POSIX_MAP(tk), /* tk Turkmen 0x42 */
- ILCID_POSIX_MAP(tn), /* tn Tswana 0x32 */
- ILCID_POSIX_MAP(tr), /* tr Turkish 0x1f */
- ILCID_POSIX_MAP(ts), /* ts Tsonga 0x31 */
- ILCID_POSIX_MAP(tt), /* tt Tatar 0x44 */
- ILCID_POSIX_MAP(tzm), /* tzm Tamazight 0x5f */
- ILCID_POSIX_MAP(ug), /* ug Uighur 0x80 */
- ILCID_POSIX_MAP(uk), /* uk Ukrainian 0x22 */
- ILCID_POSIX_MAP(ur), /* ur Urdu 0x20 */
- ILCID_POSIX_MAP(uz), /* uz Uzbek 0x43 */
- ILCID_POSIX_MAP(ve), /* ve Venda 0x33 */
- ILCID_POSIX_MAP(vi), /* vi Vietnamese 0x2a */
- ILCID_POSIX_MAP(wo), /* wo Wolof 0x88 */
- ILCID_POSIX_MAP(xh), /* xh Xhosa 0x34 */
- ILCID_POSIX_MAP(yi), /* yi Yiddish 0x3d */
- ILCID_POSIX_MAP(yo), /* yo Yoruba 0x6a */
- ILCID_POSIX_MAP(zh), /* zh Chinese 0x04 */
- ILCID_POSIX_MAP(zu), /* zu Zulu 0x35 */
-};
-
-static const uint32_t gLocaleCount = UPRV_LENGTHOF(gPosixIDmap);
-
-/**
- * Do not call this function. It is called by hostID.
- * The function is not private because this struct must stay as a C struct,
- * and this is an internal class.
- */
-static int32_t
-idCmp(const char* id1, const char* id2)
-{
- int32_t diffIdx = 0;
- while (*id1 == *id2 && *id1 != 0) {
- diffIdx++;
- id1++;
- id2++;
- }
- return diffIdx;
-}
-
-/**
- * Searches for a Windows LCID
- *
- * @param posixid the Posix style locale id.
- * @param status gets set to U_ILLEGAL_ARGUMENT_ERROR when the Posix ID has
- * no equivalent Windows LCID.
- * @return the LCID
- */
-static uint32_t
-getHostID(const ILcidPosixMap *this_0, const char* posixID, UErrorCode* status)
-{
- int32_t bestIdx = 0;
- int32_t bestIdxDiff = 0;
- int32_t posixIDlen = (int32_t)uprv_strlen(posixID);
- uint32_t idx;
-
- for (idx = 0; idx < this_0->numRegions; idx++ ) {
- int32_t sameChars = idCmp(posixID, this_0->regionMaps[idx].posixID);
- if (sameChars > bestIdxDiff && this_0->regionMaps[idx].posixID[sameChars] == 0) {
- if (posixIDlen == sameChars) {
- /* Exact match */
- return this_0->regionMaps[idx].hostID;
- }
- bestIdxDiff = sameChars;
- bestIdx = idx;
- }
- }
- /* We asked for something unusual, like en_ZZ, and we try to return the number for the same language. */
- /* We also have to make sure that sid and si and similar string subsets don't match. */
- if ((posixID[bestIdxDiff] == '_' || posixID[bestIdxDiff] == '@')
- && this_0->regionMaps[bestIdx].posixID[bestIdxDiff] == 0)
- {
- *status = U_USING_FALLBACK_WARNING;
- return this_0->regionMaps[bestIdx].hostID;
- }
-
- /*no match found */
- *status = U_ILLEGAL_ARGUMENT_ERROR;
- return this_0->regionMaps->hostID;
-}
-
-static const char*
-getPosixID(const ILcidPosixMap *this_0, uint32_t hostID)
-{
- uint32_t i;
- for (i = 0; i <= this_0->numRegions; i++)
- {
- if (this_0->regionMaps[i].hostID == hostID)
- {
- return this_0->regionMaps[i].posixID;
- }
- }
-
- /* If you get here, then no matching region was found,
- so return the language id with the wild card region. */
- return this_0->regionMaps[0].posixID;
-}
-
-/*
-//////////////////////////////////////
-//
-// LCID --> POSIX
-//
-/////////////////////////////////////
-*/
-#ifdef USE_WINDOWS_LOCALE_API
-/*
- * Various language tags needs to be changed:
- * quz -> qu
- * prs -> fa
- */
-#define FIX_LANGUAGE_ID_TAG(buffer, len) \
- if (len >= 3) { \
- if (buffer[0] == 'q' && buffer[1] == 'u' && buffer[2] == 'z') {\
- buffer[2] = 0; \
- uprv_strcat(buffer, buffer+3); \
- } else if (buffer[0] == 'p' && buffer[1] == 'r' && buffer[2] == 's') {\
- buffer[0] = 'f'; buffer[1] = 'a'; buffer[2] = 0; \
- uprv_strcat(buffer, buffer+3); \
- } \
- }
-
-#endif
-U_CAPI int32_t
-uprv_convertToPosix(uint32_t hostid, char *posixID, int32_t posixIDCapacity, UErrorCode* status)
-{
- uint16_t langID;
- uint32_t localeIndex;
- UBool bLookup = TRUE;
- const char *pPosixID = NULL;
-
-#ifdef USE_WINDOWS_LOCALE_API
- // Note: Windows primary lang ID 0x92 in LCID is used for Central Kurdish and
- // GetLocaleInfo() maps such LCID to "ku". However, CLDR uses "ku" for
- // Northern Kurdish and "ckb" for Central Kurdish. For this reason, we cannot
- // use the Windows API to resolve locale ID for this specific case.
- if ((hostid & 0x3FF) != 0x92) {
- int32_t tmpLen = 0;
- char locName[157]; /* ULOC_FULLNAME_CAPACITY */
-
- tmpLen = GetLocaleInfoA(hostid, LOCALE_SNAME, (LPSTR)locName, UPRV_LENGTHOF(locName));
- if (tmpLen > 1) {
- /* Windows locale name may contain sorting variant, such as "es-ES_tradnl".
- In such case, we need special mapping data found in the hardcoded table
- in this source file. */
- char *p = uprv_strchr(locName, '_');
- if (p) {
- /* Keep the base locale, without variant */
- *p = 0;
- tmpLen = uprv_strlen(locName);
- }
- else {
- /* No hardcoded table lookup necessary */
- bLookup = FALSE;
- }
- /* Change the tag separator from '-' to '_' */
- p = locName;
- while (*p) {
- if (*p == '-') {
- *p = '_';
- }
- p++;
- }
- FIX_LANGUAGE_ID_TAG(locName, tmpLen);
- pPosixID = locName;
- }
- }
-#endif
- if (bLookup) {
- const char *pCandidate = NULL;
- langID = LANGUAGE_LCID(hostid);
-
- for (localeIndex = 0; localeIndex < gLocaleCount; localeIndex++) {
- if (langID == gPosixIDmap[localeIndex].regionMaps->hostID) {
- pCandidate = getPosixID(&gPosixIDmap[localeIndex], hostid);
- break;
- }
- }
-
- /* On Windows, when locale name has a variant, we still look up the hardcoded table.
- If a match in the hardcoded table is longer than the Windows locale name without
- variant, we use the one as the result */
- if (pCandidate && (pPosixID == NULL || uprv_strlen(pCandidate) > uprv_strlen(pPosixID))) {
- pPosixID = pCandidate;
- }
- }
-
- if (pPosixID) {
- int32_t resLen = uprv_strlen(pPosixID);
- int32_t copyLen = resLen <= posixIDCapacity ? resLen : posixIDCapacity;
- uprv_memcpy(posixID, pPosixID, copyLen);
- if (resLen < posixIDCapacity) {
- posixID[resLen] = 0;
- if (*status == U_STRING_NOT_TERMINATED_WARNING) {
- *status = U_ZERO_ERROR;
- }
- } else if (resLen == posixIDCapacity) {
- *status = U_STRING_NOT_TERMINATED_WARNING;
- } else {
- *status = U_BUFFER_OVERFLOW_ERROR;
- }
- return resLen;
- }
-
- /* no match found */
- *status = U_ILLEGAL_ARGUMENT_ERROR;
- return -1;
-}
-
-/*
-//////////////////////////////////////
-//
-// POSIX --> LCID
-// This should only be called from uloc_getLCID.
-// The locale ID must be in canonical form.
-// langID is separate so that this file doesn't depend on the uloc_* API.
-//
-/////////////////////////////////////
-*/
-
-U_CAPI uint32_t
-uprv_convertToLCID(const char *langID, const char* posixID, UErrorCode* status)
-{
-
- uint32_t low = 0;
- uint32_t high = gLocaleCount;
- uint32_t mid;
- uint32_t oldmid = 0;
- int32_t compVal;
-
- uint32_t value = 0;
- uint32_t fallbackValue = (uint32_t)-1;
- UErrorCode myStatus;
- uint32_t idx;
-
- /* Check for incomplete id. */
- if (!langID || !posixID || uprv_strlen(langID) < 2 || uprv_strlen(posixID) < 2) {
- return 0;
- }
-
- /*Binary search for the map entry for normal cases */
-
- while (high > low) /*binary search*/{
-
- mid = (high+low) >> 1; /*Finds median*/
-
- if (mid == oldmid)
- break;
-
- compVal = uprv_strcmp(langID, gPosixIDmap[mid].regionMaps->posixID);
- if (compVal < 0){
- high = mid;
- }
- else if (compVal > 0){
- low = mid;
- }
- else /*we found it*/{
- return getHostID(&gPosixIDmap[mid], posixID, status);
- }
- oldmid = mid;
- }
-
- /*
- * Sometimes we can't do a binary search on posixID because some LCIDs
- * go to different locales. We hit one of those special cases.
- */
- for (idx = 0; idx < gLocaleCount; idx++ ) {
- myStatus = U_ZERO_ERROR;
- value = getHostID(&gPosixIDmap[idx], posixID, &myStatus);
- if (myStatus == U_ZERO_ERROR) {
- return value;
- }
- else if (myStatus == U_USING_FALLBACK_WARNING) {
- fallbackValue = value;
- }
- }
-
- if (fallbackValue != (uint32_t)-1) {
- *status = U_USING_FALLBACK_WARNING;
- return fallbackValue;
- }
-
- /* no match found */
- *status = U_ILLEGAL_ARGUMENT_ERROR;
- return 0; /* return international (root) */
-}
-
Added: trunk/Build/source/libs/icu/icu-src/source/common/locmap.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locmap.cpp (rev 0)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locmap.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -0,0 +1,1320 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+/*
+ **********************************************************************
+ * Copyright (C) 1996-2016, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ **********************************************************************
+ *
+ * Provides functionality for mapping between
+ * LCID and Posix IDs or ICU locale to codepage
+ *
+ * Note: All classes and code in this file are
+ * intended for internal use only.
+ *
+ * Methods of interest:
+ * unsigned long convertToLCID(const char*);
+ * const char* convertToPosix(unsigned long);
+ *
+ * Kathleen Wilson, 4/30/96
+ *
+ * Date Name Description
+ * 3/11/97 aliu Fixed off-by-one bug in assignment operator. Added
+ * setId() method and safety check against
+ * MAX_ID_LENGTH.
+ * 04/23/99 stephen Added C wrapper for convertToPosix.
+ * 09/18/00 george Removed the memory leaks.
+ * 08/23/01 george Convert to C
+ */
+
+#include "locmap.h"
+#include "cstring.h"
+#include "cmemory.h"
+#include "unicode/uloc.h"
+
+#if U_PLATFORM == U_PF_WINDOWS && defined(_MSC_VER) && (_MSC_VER >= 1500)
+/*
+ * TODO: It seems like we should widen this to
+ * either U_PLATFORM_USES_ONLY_WIN32_API (includes MinGW)
+ * or U_PLATFORM_HAS_WIN32_API (includes MinGW and Cygwin)
+ * but those use gcc and won't have defined(_MSC_VER).
+ * We might need to #include some Windows header and test for some version macro from there.
+ * Or call some Windows function and see what it returns.
+ */
+#define USE_WINDOWS_LCID_MAPPING_API
+#include <windows.h>
+#include <winnls.h>
+#endif
+
+/*
+ * Note:
+ * The mapping from Win32 locale ID numbers to POSIX locale strings should
+ * be the faster one.
+ *
+ * Windows LCIDs are defined at https://msdn.microsoft.com/en-us/library/cc233965.aspx
+ * [MS-LCID] Windows Language Code Identifier (LCID) Reference
+ */
+
+/*
+////////////////////////////////////////////////
+//
+// Internal Classes for LCID <--> POSIX Mapping
+//
+/////////////////////////////////////////////////
+*/
+
+typedef struct ILcidPosixElement
+{
+ const uint32_t hostID;
+ const char * const posixID;
+} ILcidPosixElement;
+
+typedef struct ILcidPosixMap
+{
+ const uint32_t numRegions;
+ const struct ILcidPosixElement* const regionMaps;
+} ILcidPosixMap;
+
+
+/*
+/////////////////////////////////////////////////
+//
+// Easy macros to make the LCID <--> POSIX Mapping
+//
+/////////////////////////////////////////////////
+*/
+
+/**
+ * The standard one language/one country mapping for LCID.
+ * The first element must be the language, and the following
+ * elements are the language with the country.
+ * @param hostID LCID in host format such as 0x044d
+ * @param languageID posix ID of just the language such as 'de'
+ * @param posixID posix ID of the language_TERRITORY such as 'de_CH'
+ */
+#define ILCID_POSIX_ELEMENT_ARRAY(hostID, languageID, posixID) \
+static const ILcidPosixElement locmap_ ## languageID [] = { \
+ {LANGUAGE_LCID(hostID), #languageID}, /* parent locale */ \
+ {hostID, #posixID}, \
+};
+
+/**
+ * Define a subtable by ID
+ * @param id the POSIX ID, either a language or language_TERRITORY
+ */
+#define ILCID_POSIX_SUBTABLE(id) \
+static const ILcidPosixElement locmap_ ## id [] =
+
+
+/**
+ * Create the map for the posixID. This macro supposes that the language string
+ * name is the same as the global variable name, and that the first element
+ * in the ILcidPosixElement is just the language.
+ * @param _posixID the full POSIX ID for this entry.
+ */
+#define ILCID_POSIX_MAP(_posixID) \
+ {UPRV_LENGTHOF(locmap_ ## _posixID), locmap_ ## _posixID}
+
+/*
+////////////////////////////////////////////
+//
+// Create the table of LCID to POSIX Mapping
+// None of it should be dynamically created.
+//
+// Keep static locale variables inside the function so that
+// it can be created properly during static init.
+//
+// Note: This table should be updated periodically. Check the [MS-LCID] Windows Language Code Identifier
+// (LCID) Reference defined at https://msdn.microsoft.com/en-us/library/cc233965.aspx
+//
+// Microsoft is moving away from LCID in favor of locale name as of Vista. This table needs to be
+// maintained for support of older Windows version.
+// Update: Windows 7 (091130)
+//
+// Note: Microsoft assign a different LCID if a locale has a sorting variant. POSIX IDs below may contain
+// @collation=XXX, but no other keywords are allowed (at least for now). When uprv_convertToLCID() is
+// called from uloc_getLCID(), keywords other than collation are already removed. If we really need
+// to support other keywords in this mapping data, we must update the implementation.
+////////////////////////////////////////////
+*/
+
+// TODO: For Windows ideally this table would be a list of exceptions rather than a complete list as
+// LocaleNameToLCID and LCIDToLocaleName provide 90% of these.
+
+ILCID_POSIX_ELEMENT_ARRAY(0x0436, af, af_ZA)
+
+ILCID_POSIX_SUBTABLE(ar) {
+ {0x01, "ar"},
+ {0x3801, "ar_AE"},
+ {0x3c01, "ar_BH"},
+ {0x1401, "ar_DZ"},
+ {0x0c01, "ar_EG"},
+ {0x0801, "ar_IQ"},
+ {0x2c01, "ar_JO"},
+ {0x3401, "ar_KW"},
+ {0x3001, "ar_LB"},
+ {0x1001, "ar_LY"},
+ {0x1801, "ar_MA"},
+ {0x1801, "ar_MO"},
+ {0x2001, "ar_OM"},
+ {0x4001, "ar_QA"},
+ {0x0401, "ar_SA"},
+ {0x2801, "ar_SY"},
+ {0x1c01, "ar_TN"},
+ {0x2401, "ar_YE"}
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x044d, as, as_IN)
+ILCID_POSIX_ELEMENT_ARRAY(0x045e, am, am_ET)
+ILCID_POSIX_ELEMENT_ARRAY(0x047a, arn,arn_CL)
+
+ILCID_POSIX_SUBTABLE(az) {
+ {0x2c, "az"},
+ {0x082c, "az_Cyrl_AZ"}, /* Cyrillic based */
+ {0x742c, "az_Cyrl"}, /* Cyrillic based */
+ {0x042c, "az_Latn_AZ"}, /* Latin based */
+ {0x782c, "az_Latn"}, /* Latin based */
+ {0x042c, "az_AZ"} /* Latin based */
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x046d, ba, ba_RU)
+ILCID_POSIX_ELEMENT_ARRAY(0x0423, be, be_BY)
+
+/*ILCID_POSIX_SUBTABLE(ber) {
+ {0x5f, "ber"},
+ {0x045f, "ber_Arab_DZ"},
+ {0x045f, "ber_Arab"},
+ {0x085f, "ber_Latn_DZ"},
+ {0x085f, "ber_Latn"}
+};*/
+
+ILCID_POSIX_ELEMENT_ARRAY(0x0402, bg, bg_BG)
+
+ILCID_POSIX_SUBTABLE(bin) {
+ {0x66, "bin"},
+ {0x0466, "bin_NG"}
+};
+
+ILCID_POSIX_SUBTABLE(bn) {
+ {0x45, "bn"},
+ {0x0845, "bn_BD"},
+ {0x0445, "bn_IN"}
+};
+
+ILCID_POSIX_SUBTABLE(bo) {
+ {0x51, "bo"},
+ {0x0851, "bo_BT"},
+ {0x0451, "bo_CN"},
+ {0x0c51, "dz_BT"}
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x047e, br, br_FR)
+
+ILCID_POSIX_SUBTABLE(ca) {
+ {0x03, "ca"},
+ {0x0403, "ca_ES"},
+ {0x0803, "ca_ES_VALENCIA"}
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x0483, co, co_FR)
+
+ILCID_POSIX_SUBTABLE(chr) {
+ {0x05c, "chr"},
+ {0x7c5c, "chr_Cher"},
+ {0x045c, "chr_Cher_US"},
+ {0x045c, "chr_US"}
+};
+
+// ICU has chosen different names for these.
+ILCID_POSIX_SUBTABLE(ckb) {
+ {0x92, "ckb"},
+ {0x7c92, "ckb_Arab"},
+ {0x0492, "ckb_Arab_IQ"}
+};
+
+/* Declared as cs_CZ to get around compiler errors on z/OS, which defines cs as a function */
+ILCID_POSIX_ELEMENT_ARRAY(0x0405, cs, cs_CZ)
+
+ILCID_POSIX_ELEMENT_ARRAY(0x0452, cy, cy_GB)
+ILCID_POSIX_ELEMENT_ARRAY(0x0406, da, da_DK)
+
+// Windows doesn't know POSIX or BCP47 Unicode phonebook sort names
+ILCID_POSIX_SUBTABLE(de) {
+ {0x07, "de"},
+ {0x0c07, "de_AT"},
+ {0x0807, "de_CH"},
+ {0x0407, "de_DE"},
+ {0x1407, "de_LI"},
+ {0x1007, "de_LU"},
+ {0x10407,"de_DE at collation=phonebook"}, /*This is really de_DE_PHONEBOOK on Windows*/
+ {0x10407,"de at collation=phonebook"} /*This is really de_DE_PHONEBOOK on Windows*/
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x0465, dv, dv_MV)
+ILCID_POSIX_ELEMENT_ARRAY(0x0408, el, el_GR)
+
+// Windows uses an empty string for 'invariant'
+ILCID_POSIX_SUBTABLE(en) {
+ {0x09, "en"},
+ {0x0c09, "en_AU"},
+ {0x2809, "en_BZ"},
+ {0x1009, "en_CA"},
+ {0x0809, "en_GB"},
+ {0x3c09, "en_HK"},
+ {0x3809, "en_ID"},
+ {0x1809, "en_IE"},
+ {0x4009, "en_IN"},
+ {0x2009, "en_JM"},
+ {0x4409, "en_MY"},
+ {0x1409, "en_NZ"},
+ {0x3409, "en_PH"},
+ {0x4809, "en_SG"},
+ {0x2C09, "en_TT"},
+ {0x0409, "en_US"},
+ {0x007f, "en_US_POSIX"}, /* duplicate for round-tripping */
+ {0x2409, "en_029"},
+ {0x1c09, "en_ZA"},
+ {0x3009, "en_ZW"},
+ {0x2409, "en_VI"}, /* Virgin Islands AKA Caribbean Islands (en_CB). On Windows8+ This is 0x1000 or dynamically assigned */
+ {0x0409, "en_AS"}, /* Alias for en_US. Leave last. On Windows8+ This is 0x1000 or dynamically assigned */
+ {0x0409, "en_GU"}, /* Alias for en_US. Leave last. On Windows8+ This is 0x1000 or dynamically assigned */
+ {0x0409, "en_MH"}, /* Alias for en_US. Leave last. On Windows8+ This is 0x1000 or dynamically assigned */
+ {0x0409, "en_MP"}, /* Alias for en_US. Leave last. On Windows8+ This is 0x1000 or dynamically assigned */
+ {0x0409, "en_UM"} /* Alias for en_US. Leave last. On Windows8+ This is 0x1000 or dynamically assigned */
+};
+
+ILCID_POSIX_SUBTABLE(en_US_POSIX) {
+ {0x007f, "en_US_POSIX"} /* duplicate for roundtripping */
+};
+
+// Windows doesn't know POSIX or BCP47 Unicode traditional sort names
+ILCID_POSIX_SUBTABLE(es) {
+ {0x0a, "es"},
+ {0x2c0a, "es_AR"},
+ {0x400a, "es_BO"},
+ {0x340a, "es_CL"},
+ {0x240a, "es_CO"},
+ {0x140a, "es_CR"},
+ {0x5c0a, "es_CU"},
+ {0x1c0a, "es_DO"},
+ {0x300a, "es_EC"},
+ {0x0c0a, "es_ES"}, /*Modern sort.*/
+ {0x100a, "es_GT"},
+ {0x480a, "es_HN"},
+ {0x080a, "es_MX"},
+ {0x4c0a, "es_NI"},
+ {0x180a, "es_PA"},
+ {0x280a, "es_PE"},
+ {0x500a, "es_PR"},
+ {0x3c0a, "es_PY"},
+ {0x440a, "es_SV"},
+ {0x540a, "es_US"},
+ {0x380a, "es_UY"},
+ {0x200a, "es_VE"},
+ {0x580a, "es_419"},
+ {0x040a, "es_ES at collation=traditional"},
+ {0x040a, "es at collation=traditional"} // Windows will treat this as es-ES at collation=traditional
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x0425, et, et_EE)
+ILCID_POSIX_ELEMENT_ARRAY(0x042d, eu, eu_ES)
+
+/* ISO-639 doesn't distinguish between Persian and Dari.*/
+ILCID_POSIX_SUBTABLE(fa) {
+ {0x29, "fa"},
+ {0x0429, "fa_IR"}, /* Persian/Farsi (Iran) */
+ {0x048c, "fa_AF"} /* Persian/Dari (Afghanistan) */
+};
+
+
+/* duplicate for roundtripping */
+ILCID_POSIX_SUBTABLE(fa_AF) {
+ {0x8c, "fa_AF"}, /* Persian/Dari (Afghanistan) */
+ {0x048c, "fa_AF"} /* Persian/Dari (Afghanistan) */
+};
+
+ILCID_POSIX_SUBTABLE(ff) {
+ {0x67, "ff"},
+ {0x7c67, "ff_Latn"},
+ {0x0867, "ff_Latn_SN"},
+ {0x0467, "ff_NG"}
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x040b, fi, fi_FI)
+ILCID_POSIX_ELEMENT_ARRAY(0x0464, fil,fil_PH)
+ILCID_POSIX_ELEMENT_ARRAY(0x0438, fo, fo_FO)
+
+ILCID_POSIX_SUBTABLE(fr) {
+ {0x0c, "fr"},
+ {0x080c, "fr_BE"},
+ {0x0c0c, "fr_CA"},
+ {0x240c, "fr_CD"},
+ {0x240c, "fr_CG"},
+ {0x100c, "fr_CH"},
+ {0x300c, "fr_CI"},
+ {0x2c0c, "fr_CM"},
+ {0x040c, "fr_FR"},
+ {0x3c0c, "fr_HT"},
+ {0x140c, "fr_LU"},
+ {0x380c, "fr_MA"},
+ {0x180c, "fr_MC"},
+ {0x340c, "fr_ML"},
+ {0x200c, "fr_RE"},
+ {0x280c, "fr_SN"},
+ {0xe40c, "fr_015"},
+ {0x1c0c, "fr_029"}
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x0467, fuv, fuv_NG)
+
+ILCID_POSIX_ELEMENT_ARRAY(0x0462, fy, fy_NL)
+
+ILCID_POSIX_SUBTABLE(ga) { /* Gaelic (Ireland) */
+ {0x3c, "ga"},
+ {0x083c, "ga_IE"},
+ {0x043c, "gd_GB"}
+};
+
+ILCID_POSIX_SUBTABLE(gd) { /* Gaelic (Scotland) */
+ {0x91, "gd"},
+ {0x0491, "gd_GB"}
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x0456, gl, gl_ES)
+ILCID_POSIX_ELEMENT_ARRAY(0x0447, gu, gu_IN)
+ILCID_POSIX_ELEMENT_ARRAY(0x0474, gn, gn_PY)
+ILCID_POSIX_ELEMENT_ARRAY(0x0484, gsw,gsw_FR)
+
+ILCID_POSIX_SUBTABLE(ha) {
+ {0x68, "ha"},
+ {0x7c68, "ha_Latn"},
+ {0x0468, "ha_Latn_NG"},
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x0475, haw,haw_US)
+ILCID_POSIX_ELEMENT_ARRAY(0x040d, he, he_IL)
+ILCID_POSIX_ELEMENT_ARRAY(0x0439, hi, hi_IN)
+
+/* This LCID is really four different locales.*/
+ILCID_POSIX_SUBTABLE(hr) {
+ {0x1a, "hr"},
+ {0x141a, "bs_Latn_BA"}, /* Bosnian, Bosnia and Herzegovina */
+ {0x681a, "bs_Latn"}, /* Bosnian, Bosnia and Herzegovina */
+ {0x141a, "bs_BA"}, /* Bosnian, Bosnia and Herzegovina */
+ {0x781a, "bs"}, /* Bosnian */
+ {0x201a, "bs_Cyrl_BA"}, /* Bosnian, Bosnia and Herzegovina */
+ {0x641a, "bs_Cyrl"}, /* Bosnian, Bosnia and Herzegovina */
+ {0x101a, "hr_BA"}, /* Croatian in Bosnia */
+ {0x041a, "hr_HR"}, /* Croatian*/
+ {0x2c1a, "sr_Latn_ME"},
+ {0x241a, "sr_Latn_RS"},
+ {0x181a, "sr_Latn_BA"}, /* Serbo-Croatian in Bosnia */
+ {0x081a, "sr_Latn_CS"}, /* Serbo-Croatian*/
+ {0x701a, "sr_Latn"}, /* It's 0x1a or 0x081a, pick one to make the test program happy. */
+ {0x1c1a, "sr_Cyrl_BA"}, /* Serbo-Croatian in Bosnia */
+ {0x0c1a, "sr_Cyrl_CS"}, /* Serbian*/
+ {0x301a, "sr_Cyrl_ME"},
+ {0x281a, "sr_Cyrl_RS"},
+ {0x6c1a, "sr_Cyrl"}, /* It's 0x1a or 0x0c1a, pick one to make the test program happy. */
+ {0x7c1a, "sr"} /* In CLDR sr is sr_Cyrl. */
+};
+
+ILCID_POSIX_SUBTABLE(hsb) {
+ {0x2E, "hsb"},
+ {0x042E, "hsb_DE"},
+ {0x082E, "dsb_DE"},
+ {0x7C2E, "dsb"},
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x040e, hu, hu_HU)
+ILCID_POSIX_ELEMENT_ARRAY(0x042b, hy, hy_AM)
+
+ILCID_POSIX_SUBTABLE(ibb) {
+ {0x69, "ibb"},
+ {0x0469, "ibb_NG"}
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x0421, id, id_ID)
+ILCID_POSIX_ELEMENT_ARRAY(0x0470, ig, ig_NG)
+ILCID_POSIX_ELEMENT_ARRAY(0x0478, ii, ii_CN)
+ILCID_POSIX_ELEMENT_ARRAY(0x040f, is, is_IS)
+
+ILCID_POSIX_SUBTABLE(it) {
+ {0x10, "it"},
+ {0x0810, "it_CH"},
+ {0x0410, "it_IT"}
+};
+
+ILCID_POSIX_SUBTABLE(iu) {
+ {0x5d, "iu"},
+ {0x045d, "iu_Cans_CA"},
+ {0x785d, "iu_Cans"},
+ {0x085d, "iu_Latn_CA"},
+ {0x7c5d, "iu_Latn"}
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x040d, iw, iw_IL) /*Left in for compatibility*/
+ILCID_POSIX_ELEMENT_ARRAY(0x0411, ja, ja_JP)
+ILCID_POSIX_ELEMENT_ARRAY(0x0437, ka, ka_GE)
+ILCID_POSIX_ELEMENT_ARRAY(0x043f, kk, kk_KZ)
+ILCID_POSIX_ELEMENT_ARRAY(0x046f, kl, kl_GL)
+ILCID_POSIX_ELEMENT_ARRAY(0x0453, km, km_KH)
+ILCID_POSIX_ELEMENT_ARRAY(0x044b, kn, kn_IN)
+
+ILCID_POSIX_SUBTABLE(ko) {
+ {0x12, "ko"},
+ {0x0812, "ko_KP"},
+ {0x0412, "ko_KR"}
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x0457, kok, kok_IN)
+ILCID_POSIX_ELEMENT_ARRAY(0x0471, kr, kr_NG)
+
+ILCID_POSIX_SUBTABLE(ks) { /* We could add PK and CN too */
+ {0x60, "ks"},
+ {0x0460, "ks_Arab_IN"},
+ {0x0860, "ks_Deva_IN"}
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x0440, ky, ky_KG) /* Kyrgyz is spoken in Kyrgyzstan */
+
+ILCID_POSIX_SUBTABLE(la) {
+ {0x76, "la"},
+ {0x0476, "la_001"},
+ {0x0476, "la_IT"} /*Left in for compatibility*/
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x046e, lb, lb_LU)
+ILCID_POSIX_ELEMENT_ARRAY(0x0454, lo, lo_LA)
+ILCID_POSIX_ELEMENT_ARRAY(0x0427, lt, lt_LT)
+ILCID_POSIX_ELEMENT_ARRAY(0x0426, lv, lv_LV)
+ILCID_POSIX_ELEMENT_ARRAY(0x0481, mi, mi_NZ)
+ILCID_POSIX_ELEMENT_ARRAY(0x042f, mk, mk_MK)
+ILCID_POSIX_ELEMENT_ARRAY(0x044c, ml, ml_IN)
+
+ILCID_POSIX_SUBTABLE(mn) {
+ {0x50, "mn"},
+ {0x0450, "mn_MN"},
+ {0x7c50, "mn_Mong"},
+ {0x0850, "mn_Mong_CN"},
+ {0x0850, "mn_CN"},
+ {0x7850, "mn_Cyrl"},
+ {0x0c50, "mn_Mong_MN"}
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x0458, mni,mni_IN)
+ILCID_POSIX_ELEMENT_ARRAY(0x047c, moh,moh_CA)
+ILCID_POSIX_ELEMENT_ARRAY(0x044e, mr, mr_IN)
+
+ILCID_POSIX_SUBTABLE(ms) {
+ {0x3e, "ms"},
+ {0x083e, "ms_BN"}, /* Brunei Darussalam*/
+ {0x043e, "ms_MY"} /* Malaysia*/
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x043a, mt, mt_MT)
+ILCID_POSIX_ELEMENT_ARRAY(0x0455, my, my_MM)
+
+ILCID_POSIX_SUBTABLE(ne) {
+ {0x61, "ne"},
+ {0x0861, "ne_IN"}, /* India*/
+ {0x0461, "ne_NP"} /* Nepal*/
+};
+
+ILCID_POSIX_SUBTABLE(nl) {
+ {0x13, "nl"},
+ {0x0813, "nl_BE"},
+ {0x0413, "nl_NL"}
+};
+
+/* The "no" locale split into nb and nn. By default in ICU, "no" is nb.*/
+// TODO: Not all of these are needed on Windows, but I don't know how ICU treats preferred ones here.
+ILCID_POSIX_SUBTABLE(no) {
+ {0x14, "no"}, /* really nb_NO - actually Windows differentiates between neutral (no region) and specific (with region) */
+ {0x7c14, "nb"}, /* really nb */
+ {0x0414, "nb_NO"}, /* really nb_NO. Keep first in the 414 list. */
+ {0x0414, "no_NO"}, /* really nb_NO */
+ {0x0814, "nn_NO"}, /* really nn_NO. Keep first in the 814 list. */
+ {0x7814, "nn"}, /* It's 0x14 or 0x814, pick one to make the test program happy. */
+ {0x0814, "no_NO_NY"}/* really nn_NO */
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x046c, nso,nso_ZA) /* TODO: Verify the ISO-639 code */
+ILCID_POSIX_ELEMENT_ARRAY(0x0482, oc, oc_FR)
+
+ILCID_POSIX_SUBTABLE(om) { /* TODO: Verify the country */
+ {0x72, "om"},
+ {0x0472, "om_ET"},
+ {0x0472, "gaz_ET"}
+};
+
+/* Declared as or_IN to get around compiler errors*/
+ILCID_POSIX_SUBTABLE(or_IN) {
+ {0x48, "or"},
+ {0x0448, "or_IN"},
+};
+
+ILCID_POSIX_SUBTABLE(pa) {
+ {0x46, "pa"},
+ {0x0446, "pa_IN"},
+ {0x0846, "pa_Arab_PK"},
+ {0x0846, "pa_PK"}
+};
+
+ILCID_POSIX_SUBTABLE(pap) {
+ {0x79, "pap"},
+ {0x0479, "pap_029"},
+ {0x0479, "pap_AN"} /*Left in for compatibility*/
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x0415, pl, pl_PL)
+ILCID_POSIX_ELEMENT_ARRAY(0x0463, ps, ps_AF)
+
+ILCID_POSIX_SUBTABLE(pt) {
+ {0x16, "pt"},
+ {0x0416, "pt_BR"},
+ {0x0816, "pt_PT"}
+};
+
+ILCID_POSIX_SUBTABLE(qu) {
+ {0x6b, "qu"},
+ {0x046b, "qu_BO"},
+ {0x086b, "qu_EC"},
+ {0x0C6b, "qu_PE"},
+ {0x046b, "quz_BO"},
+ {0x086b, "quz_EC"},
+ {0x0C6b, "quz_PE"}
+};
+
+ILCID_POSIX_SUBTABLE(quc) {
+ {0x93, "quc"},
+ {0x0493, "quc_CO"},
+ /*
+ "quc_Latn_GT" is an exceptional case. Language ID of "quc"
+ is 0x93, but LCID of "quc_Latn_GT" is 0x486, which should be
+ under the group of "qut". "qut" is a retired ISO 639-3 language
+ code for West Central Quiche, and merged to "quc".
+ It looks Windows previously reserved "qut" for K'iche', but,
+ decided to use "quc" when adding a locale for K'iche' (Guatemala).
+
+ This data structure used here assumes language ID bits in
+ LCID is unique for alphabetic language code. But this is not true
+ for "quc_Latn_GT". If we don't have the data below, LCID look up
+ by alphabetic locale ID (POSIX) will fail. The same entry is found
+ under "qut" below, which is required for reverse look up.
+ */
+ {0x0486, "quc_Latn_GT"}
+};
+
+ILCID_POSIX_SUBTABLE(qut) {
+ {0x86, "qut"},
+ {0x0486, "qut_GT"},
+ /*
+ See the note in "quc" above.
+ */
+ {0x0486, "quc_Latn_GT"}
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x0417, rm, rm_CH)
+
+ILCID_POSIX_SUBTABLE(ro) {
+ {0x18, "ro"},
+ {0x0418, "ro_RO"},
+ {0x0818, "ro_MD"}
+};
+
+// TODO: This is almost certainly 'wrong'. 0 in Windows is a synonym for LOCALE_USER_DEFAULT.
+// More likely this is a similar concept to the Windows 0x7f Invariant locale ""
+// (Except that it's not invariant in ICU)
+ILCID_POSIX_SUBTABLE(root) {
+ {0x00, "root"}
+};
+
+ILCID_POSIX_SUBTABLE(ru) {
+ {0x19, "ru"},
+ {0x0419, "ru_RU"},
+ {0x0819, "ru_MD"}
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x0487, rw, rw_RW)
+ILCID_POSIX_ELEMENT_ARRAY(0x044f, sa, sa_IN)
+ILCID_POSIX_ELEMENT_ARRAY(0x0485, sah,sah_RU)
+
+ILCID_POSIX_SUBTABLE(sd) {
+ {0x59, "sd"},
+ {0x0459, "sd_Deva_IN"},
+ {0x0459, "sd_IN"},
+ {0x0859, "sd_Arab_PK"},
+ {0x0859, "sd_PK"},
+ {0x7c59, "sd_Arab"}
+};
+
+ILCID_POSIX_SUBTABLE(se) {
+ {0x3b, "se"},
+ {0x0c3b, "se_FI"},
+ {0x043b, "se_NO"},
+ {0x083b, "se_SE"},
+ {0x783b, "sma"},
+ {0x183b, "sma_NO"},
+ {0x1c3b, "sma_SE"},
+ {0x7c3b, "smj"},
+ {0x703b, "smn"},
+ {0x743b, "sms"},
+ {0x103b, "smj_NO"},
+ {0x143b, "smj_SE"},
+ {0x243b, "smn_FI"},
+ {0x203b, "sms_FI"},
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x045b, si, si_LK)
+ILCID_POSIX_ELEMENT_ARRAY(0x041b, sk, sk_SK)
+ILCID_POSIX_ELEMENT_ARRAY(0x0424, sl, sl_SI)
+
+ILCID_POSIX_SUBTABLE(so) {
+ {0x77, "so"},
+ {0x0477, "so_SO"}
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x041c, sq, sq_AL)
+ILCID_POSIX_ELEMENT_ARRAY(0x0430, st, st_ZA)
+
+ILCID_POSIX_SUBTABLE(sv) {
+ {0x1d, "sv"},
+ {0x081d, "sv_FI"},
+ {0x041d, "sv_SE"}
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x0441, sw, sw_KE)
+ILCID_POSIX_ELEMENT_ARRAY(0x045A, syr, syr_SY)
+
+ILCID_POSIX_SUBTABLE(ta) {
+ {0x49, "ta"},
+ {0x0449, "ta_IN"},
+ {0x0849, "ta_LK"}
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x044a, te, te_IN)
+
+/* Cyrillic based by default */
+ILCID_POSIX_SUBTABLE(tg) {
+ {0x28, "tg"},
+ {0x7c28, "tg_Cyrl"},
+ {0x0428, "tg_Cyrl_TJ"}
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x041e, th, th_TH)
+
+ILCID_POSIX_SUBTABLE(ti) {
+ {0x73, "ti"},
+ {0x0873, "ti_ER"},
+ {0x0473, "ti_ET"}
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x0442, tk, tk_TM)
+
+ILCID_POSIX_SUBTABLE(tn) {
+ {0x32, "tn"},
+ {0x0832, "tn_BW"},
+ {0x0432, "tn_ZA"}
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x041f, tr, tr_TR)
+ILCID_POSIX_ELEMENT_ARRAY(0x0431, ts, ts_ZA)
+ILCID_POSIX_ELEMENT_ARRAY(0x0444, tt, tt_RU)
+
+ILCID_POSIX_SUBTABLE(tzm) {
+ {0x5f, "tzm"},
+ {0x7c5f, "tzm_Latn"},
+ {0x085f, "tzm_Latn_DZ"},
+ {0x105f, "tzm_Tfng_MA"},
+ {0x045f, "tzm_Arab_MA"},
+ {0x045f, "tmz"}
+};
+
+ILCID_POSIX_SUBTABLE(ug) {
+ {0x80, "ug"},
+ {0x0480, "ug_CN"},
+ {0x0480, "ug_Arab_CN"}
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x0422, uk, uk_UA)
+
+ILCID_POSIX_SUBTABLE(ur) {
+ {0x20, "ur"},
+ {0x0820, "ur_IN"},
+ {0x0420, "ur_PK"}
+};
+
+ILCID_POSIX_SUBTABLE(uz) {
+ {0x43, "uz"},
+ {0x0843, "uz_Cyrl_UZ"}, /* Cyrillic based */
+ {0x7843, "uz_Cyrl"}, /* Cyrillic based */
+ {0x0843, "uz_UZ"}, /* Cyrillic based */
+ {0x0443, "uz_Latn_UZ"}, /* Latin based */
+ {0x7c43, "uz_Latn"} /* Latin based */
+};
+
+ILCID_POSIX_SUBTABLE(ve) { /* TODO: Verify the country */
+ {0x33, "ve"},
+ {0x0433, "ve_ZA"},
+ {0x0433, "ven_ZA"}
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x042a, vi, vi_VN)
+ILCID_POSIX_ELEMENT_ARRAY(0x0488, wo, wo_SN)
+ILCID_POSIX_ELEMENT_ARRAY(0x0434, xh, xh_ZA)
+
+ILCID_POSIX_SUBTABLE(yi) {
+ {0x003d, "yi"},
+ {0x043d, "yi_001"}
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x046a, yo, yo_NG)
+
+// Windows & ICU tend to different names for some of these
+// TODO: Windows probably does not need all of these entries, but I don't know how the precedence works.
+ILCID_POSIX_SUBTABLE(zh) {
+ {0x0004, "zh_Hans"},
+ {0x7804, "zh"},
+ {0x0804, "zh_CN"},
+ {0x0804, "zh_Hans_CN"},
+ {0x0c04, "zh_Hant_HK"},
+ {0x0c04, "zh_HK"},
+ {0x1404, "zh_Hant_MO"},
+ {0x1404, "zh_MO"},
+ {0x1004, "zh_Hans_SG"},
+ {0x1004, "zh_SG"},
+ {0x0404, "zh_Hant_TW"},
+ {0x7c04, "zh_Hant"},
+ {0x0404, "zh_TW"},
+ {0x30404,"zh_Hant_TW"}, /* Bopomofo order */
+ {0x30404,"zh_TW"}, /* Bopomofo order */
+ {0x20004,"zh at collation=stroke"},
+ {0x20404,"zh_Hant at collation=stroke"},
+ {0x20404,"zh_Hant_TW at collation=stroke"},
+ {0x20404,"zh_TW at collation=stroke"},
+ {0x20804,"zh_Hans at collation=stroke"},
+ {0x20804,"zh_Hans_CN at collation=stroke"},
+ {0x20804,"zh_CN at collation=stroke"}
+ // TODO: Alternate collations for other LCIDs are missing, eg: 0x50804
+};
+
+ILCID_POSIX_ELEMENT_ARRAY(0x0435, zu, zu_ZA)
+
+/* This must be static and grouped by LCID. */
+static const ILcidPosixMap gPosixIDmap[] = {
+ ILCID_POSIX_MAP(af), /* af Afrikaans 0x36 */
+ ILCID_POSIX_MAP(am), /* am Amharic 0x5e */
+ ILCID_POSIX_MAP(ar), /* ar Arabic 0x01 */
+ ILCID_POSIX_MAP(arn), /* arn Araucanian/Mapudungun 0x7a */
+ ILCID_POSIX_MAP(as), /* as Assamese 0x4d */
+ ILCID_POSIX_MAP(az), /* az Azerbaijani 0x2c */
+ ILCID_POSIX_MAP(ba), /* ba Bashkir 0x6d */
+ ILCID_POSIX_MAP(be), /* be Belarusian 0x23 */
+/* ILCID_POSIX_MAP(ber), ber Berber/Tamazight 0x5f */
+ ILCID_POSIX_MAP(bg), /* bg Bulgarian 0x02 */
+ ILCID_POSIX_MAP(bin), /* bin Edo 0x66 */
+ ILCID_POSIX_MAP(bn), /* bn Bengali; Bangla 0x45 */
+ ILCID_POSIX_MAP(bo), /* bo Tibetan 0x51 */
+ ILCID_POSIX_MAP(br), /* br Breton 0x7e */
+ ILCID_POSIX_MAP(ca), /* ca Catalan 0x03 */
+ ILCID_POSIX_MAP(chr), /* chr Cherokee 0x5c */
+ ILCID_POSIX_MAP(ckb), /* ckb Sorani (Central Kurdish) 0x92 */
+ ILCID_POSIX_MAP(co), /* co Corsican 0x83 */
+ ILCID_POSIX_MAP(cs), /* cs Czech 0x05 */
+ ILCID_POSIX_MAP(cy), /* cy Welsh 0x52 */
+ ILCID_POSIX_MAP(da), /* da Danish 0x06 */
+ ILCID_POSIX_MAP(de), /* de German 0x07 */
+ ILCID_POSIX_MAP(dv), /* dv Divehi 0x65 */
+ ILCID_POSIX_MAP(el), /* el Greek 0x08 */
+ ILCID_POSIX_MAP(en), /* en English 0x09 */
+ ILCID_POSIX_MAP(en_US_POSIX), /* invariant 0x7f */
+ ILCID_POSIX_MAP(es), /* es Spanish 0x0a */
+ ILCID_POSIX_MAP(et), /* et Estonian 0x25 */
+ ILCID_POSIX_MAP(eu), /* eu Basque 0x2d */
+ ILCID_POSIX_MAP(fa), /* fa Persian/Farsi 0x29 */
+ ILCID_POSIX_MAP(fa_AF), /* fa Persian/Dari 0x8c */
+ ILCID_POSIX_MAP(ff), /* ff Fula 0x67 */
+ ILCID_POSIX_MAP(fi), /* fi Finnish 0x0b */
+ ILCID_POSIX_MAP(fil), /* fil Filipino 0x64 */
+ ILCID_POSIX_MAP(fo), /* fo Faroese 0x38 */
+ ILCID_POSIX_MAP(fr), /* fr French 0x0c */
+ ILCID_POSIX_MAP(fuv), /* fuv Fulfulde - Nigeria 0x67 */
+ ILCID_POSIX_MAP(fy), /* fy Frisian 0x62 */
+ ILCID_POSIX_MAP(ga), /* * Gaelic (Ireland,Scotland) 0x3c */
+ ILCID_POSIX_MAP(gd), /* gd Gaelic (United Kingdom) 0x91 */
+ ILCID_POSIX_MAP(gl), /* gl Galician 0x56 */
+ ILCID_POSIX_MAP(gn), /* gn Guarani 0x74 */
+ ILCID_POSIX_MAP(gsw), /* gsw Alemanic/Alsatian/Swiss German 0x84 */
+ ILCID_POSIX_MAP(gu), /* gu Gujarati 0x47 */
+ ILCID_POSIX_MAP(ha), /* ha Hausa 0x68 */
+ ILCID_POSIX_MAP(haw), /* haw Hawaiian 0x75 */
+ ILCID_POSIX_MAP(he), /* he Hebrew (formerly iw) 0x0d */
+ ILCID_POSIX_MAP(hi), /* hi Hindi 0x39 */
+ ILCID_POSIX_MAP(hr), /* * Croatian and others 0x1a */
+ ILCID_POSIX_MAP(hsb), /* hsb Upper Sorbian 0x2e */
+ ILCID_POSIX_MAP(hu), /* hu Hungarian 0x0e */
+ ILCID_POSIX_MAP(hy), /* hy Armenian 0x2b */
+ ILCID_POSIX_MAP(ibb), /* ibb Ibibio - Nigeria 0x69 */
+ ILCID_POSIX_MAP(id), /* id Indonesian (formerly in) 0x21 */
+ ILCID_POSIX_MAP(ig), /* ig Igbo 0x70 */
+ ILCID_POSIX_MAP(ii), /* ii Sichuan Yi 0x78 */
+ ILCID_POSIX_MAP(is), /* is Icelandic 0x0f */
+ ILCID_POSIX_MAP(it), /* it Italian 0x10 */
+ ILCID_POSIX_MAP(iu), /* iu Inuktitut 0x5d */
+ ILCID_POSIX_MAP(iw), /* iw Hebrew 0x0d */
+ ILCID_POSIX_MAP(ja), /* ja Japanese 0x11 */
+ ILCID_POSIX_MAP(ka), /* ka Georgian 0x37 */
+ ILCID_POSIX_MAP(kk), /* kk Kazakh 0x3f */
+ ILCID_POSIX_MAP(kl), /* kl Kalaallisut 0x6f */
+ ILCID_POSIX_MAP(km), /* km Khmer 0x53 */
+ ILCID_POSIX_MAP(kn), /* kn Kannada 0x4b */
+ ILCID_POSIX_MAP(ko), /* ko Korean 0x12 */
+ ILCID_POSIX_MAP(kok), /* kok Konkani 0x57 */
+ ILCID_POSIX_MAP(kr), /* kr Kanuri 0x71 */
+ ILCID_POSIX_MAP(ks), /* ks Kashmiri 0x60 */
+ ILCID_POSIX_MAP(ky), /* ky Kyrgyz 0x40 */
+ ILCID_POSIX_MAP(lb), /* lb Luxembourgish 0x6e */
+ ILCID_POSIX_MAP(la), /* la Latin 0x76 */
+ ILCID_POSIX_MAP(lo), /* lo Lao 0x54 */
+ ILCID_POSIX_MAP(lt), /* lt Lithuanian 0x27 */
+ ILCID_POSIX_MAP(lv), /* lv Latvian, Lettish 0x26 */
+ ILCID_POSIX_MAP(mi), /* mi Maori 0x81 */
+ ILCID_POSIX_MAP(mk), /* mk Macedonian 0x2f */
+ ILCID_POSIX_MAP(ml), /* ml Malayalam 0x4c */
+ ILCID_POSIX_MAP(mn), /* mn Mongolian 0x50 */
+ ILCID_POSIX_MAP(mni), /* mni Manipuri 0x58 */
+ ILCID_POSIX_MAP(moh), /* moh Mohawk 0x7c */
+ ILCID_POSIX_MAP(mr), /* mr Marathi 0x4e */
+ ILCID_POSIX_MAP(ms), /* ms Malay 0x3e */
+ ILCID_POSIX_MAP(mt), /* mt Maltese 0x3a */
+ ILCID_POSIX_MAP(my), /* my Burmese 0x55 */
+/* ILCID_POSIX_MAP(nb), // no Norwegian 0x14 */
+ ILCID_POSIX_MAP(ne), /* ne Nepali 0x61 */
+ ILCID_POSIX_MAP(nl), /* nl Dutch 0x13 */
+/* ILCID_POSIX_MAP(nn), // no Norwegian 0x14 */
+ ILCID_POSIX_MAP(no), /* * Norwegian 0x14 */
+ ILCID_POSIX_MAP(nso), /* nso Sotho, Northern (Sepedi dialect) 0x6c */
+ ILCID_POSIX_MAP(oc), /* oc Occitan 0x82 */
+ ILCID_POSIX_MAP(om), /* om Oromo 0x72 */
+ ILCID_POSIX_MAP(or_IN), /* or Oriya 0x48 */
+ ILCID_POSIX_MAP(pa), /* pa Punjabi 0x46 */
+ ILCID_POSIX_MAP(pap), /* pap Papiamentu 0x79 */
+ ILCID_POSIX_MAP(pl), /* pl Polish 0x15 */
+ ILCID_POSIX_MAP(ps), /* ps Pashto 0x63 */
+ ILCID_POSIX_MAP(pt), /* pt Portuguese 0x16 */
+ ILCID_POSIX_MAP(qu), /* qu Quechua 0x6B */
+ ILCID_POSIX_MAP(quc), /* quc K'iche 0x93 */
+ ILCID_POSIX_MAP(qut), /* qut K'iche 0x86 */
+ ILCID_POSIX_MAP(rm), /* rm Raeto-Romance/Romansh 0x17 */
+ ILCID_POSIX_MAP(ro), /* ro Romanian 0x18 */
+ ILCID_POSIX_MAP(root), /* root 0x00 */
+ ILCID_POSIX_MAP(ru), /* ru Russian 0x19 */
+ ILCID_POSIX_MAP(rw), /* rw Kinyarwanda 0x87 */
+ ILCID_POSIX_MAP(sa), /* sa Sanskrit 0x4f */
+ ILCID_POSIX_MAP(sah), /* sah Yakut 0x85 */
+ ILCID_POSIX_MAP(sd), /* sd Sindhi 0x59 */
+ ILCID_POSIX_MAP(se), /* se Sami 0x3b */
+/* ILCID_POSIX_MAP(sh), // sh Serbo-Croatian 0x1a */
+ ILCID_POSIX_MAP(si), /* si Sinhalese 0x5b */
+ ILCID_POSIX_MAP(sk), /* sk Slovak 0x1b */
+ ILCID_POSIX_MAP(sl), /* sl Slovenian 0x24 */
+ ILCID_POSIX_MAP(so), /* so Somali 0x77 */
+ ILCID_POSIX_MAP(sq), /* sq Albanian 0x1c */
+/* ILCID_POSIX_MAP(sr), // sr Serbian 0x1a */
+ ILCID_POSIX_MAP(st), /* st Sutu 0x30 */
+ ILCID_POSIX_MAP(sv), /* sv Swedish 0x1d */
+ ILCID_POSIX_MAP(sw), /* sw Swahili 0x41 */
+ ILCID_POSIX_MAP(syr), /* syr Syriac 0x5A */
+ ILCID_POSIX_MAP(ta), /* ta Tamil 0x49 */
+ ILCID_POSIX_MAP(te), /* te Telugu 0x4a */
+ ILCID_POSIX_MAP(tg), /* tg Tajik 0x28 */
+ ILCID_POSIX_MAP(th), /* th Thai 0x1e */
+ ILCID_POSIX_MAP(ti), /* ti Tigrigna 0x73 */
+ ILCID_POSIX_MAP(tk), /* tk Turkmen 0x42 */
+ ILCID_POSIX_MAP(tn), /* tn Tswana 0x32 */
+ ILCID_POSIX_MAP(tr), /* tr Turkish 0x1f */
+ ILCID_POSIX_MAP(ts), /* ts Tsonga 0x31 */
+ ILCID_POSIX_MAP(tt), /* tt Tatar 0x44 */
+ ILCID_POSIX_MAP(tzm), /* tzm Tamazight 0x5f */
+ ILCID_POSIX_MAP(ug), /* ug Uighur 0x80 */
+ ILCID_POSIX_MAP(uk), /* uk Ukrainian 0x22 */
+ ILCID_POSIX_MAP(ur), /* ur Urdu 0x20 */
+ ILCID_POSIX_MAP(uz), /* uz Uzbek 0x43 */
+ ILCID_POSIX_MAP(ve), /* ve Venda 0x33 */
+ ILCID_POSIX_MAP(vi), /* vi Vietnamese 0x2a */
+ ILCID_POSIX_MAP(wo), /* wo Wolof 0x88 */
+ ILCID_POSIX_MAP(xh), /* xh Xhosa 0x34 */
+ ILCID_POSIX_MAP(yi), /* yi Yiddish 0x3d */
+ ILCID_POSIX_MAP(yo), /* yo Yoruba 0x6a */
+ ILCID_POSIX_MAP(zh), /* zh Chinese 0x04 */
+ ILCID_POSIX_MAP(zu), /* zu Zulu 0x35 */
+};
+
+static const uint32_t gLocaleCount = UPRV_LENGTHOF(gPosixIDmap);
+
+/**
+ * Do not call this function. It is called by hostID.
+ * The function is not private because this struct must stay as a C struct,
+ * and this is an internal class.
+ */
+static int32_t
+idCmp(const char* id1, const char* id2)
+{
+ int32_t diffIdx = 0;
+ while (*id1 == *id2 && *id1 != 0) {
+ diffIdx++;
+ id1++;
+ id2++;
+ }
+ return diffIdx;
+}
+
+/**
+ * Searches for a Windows LCID
+ *
+ * @param posixid the Posix style locale id.
+ * @param status gets set to U_ILLEGAL_ARGUMENT_ERROR when the Posix ID has
+ * no equivalent Windows LCID.
+ * @return the LCID
+ */
+static uint32_t
+getHostID(const ILcidPosixMap *this_0, const char* posixID, UErrorCode* status)
+{
+ int32_t bestIdx = 0;
+ int32_t bestIdxDiff = 0;
+ int32_t posixIDlen = (int32_t)uprv_strlen(posixID);
+ uint32_t idx;
+
+ for (idx = 0; idx < this_0->numRegions; idx++ ) {
+ int32_t sameChars = idCmp(posixID, this_0->regionMaps[idx].posixID);
+ if (sameChars > bestIdxDiff && this_0->regionMaps[idx].posixID[sameChars] == 0) {
+ if (posixIDlen == sameChars) {
+ /* Exact match */
+ return this_0->regionMaps[idx].hostID;
+ }
+ bestIdxDiff = sameChars;
+ bestIdx = idx;
+ }
+ }
+ /* We asked for something unusual, like en_ZZ, and we try to return the number for the same language. */
+ /* We also have to make sure that sid and si and similar string subsets don't match. */
+ if ((posixID[bestIdxDiff] == '_' || posixID[bestIdxDiff] == '@')
+ && this_0->regionMaps[bestIdx].posixID[bestIdxDiff] == 0)
+ {
+ *status = U_USING_FALLBACK_WARNING;
+ return this_0->regionMaps[bestIdx].hostID;
+ }
+
+ /*no match found */
+ *status = U_ILLEGAL_ARGUMENT_ERROR;
+ return this_0->regionMaps->hostID;
+}
+
+static const char*
+getPosixID(const ILcidPosixMap *this_0, uint32_t hostID)
+{
+ uint32_t i;
+ for (i = 0; i <= this_0->numRegions; i++)
+ {
+ if (this_0->regionMaps[i].hostID == hostID)
+ {
+ return this_0->regionMaps[i].posixID;
+ }
+ }
+
+ /* If you get here, then no matching region was found,
+ so return the language id with the wild card region. */
+ return this_0->regionMaps[0].posixID;
+}
+
+/*
+//////////////////////////////////////
+//
+// LCID --> POSIX
+//
+/////////////////////////////////////
+*/
+#ifdef USE_WINDOWS_LCID_MAPPING_API
+/*
+ * Various language tags needs to be changed:
+ * quz -> qu
+ * prs -> fa
+ */
+#define FIX_LANGUAGE_ID_TAG(buffer, len) \
+ if (len >= 3) { \
+ if (buffer[0] == 'q' && buffer[1] == 'u' && buffer[2] == 'z') {\
+ buffer[2] = 0; \
+ uprv_strcat(buffer, buffer+3); \
+ } else if (buffer[0] == 'p' && buffer[1] == 'r' && buffer[2] == 's') {\
+ buffer[0] = 'f'; buffer[1] = 'a'; buffer[2] = 0; \
+ uprv_strcat(buffer, buffer+3); \
+ } \
+ }
+
+#endif
+U_CAPI int32_t
+uprv_convertToPosix(uint32_t hostid, char *posixID, int32_t posixIDCapacity, UErrorCode* status)
+{
+ uint16_t langID;
+ uint32_t localeIndex;
+ UBool bLookup = TRUE;
+ const char *pPosixID = NULL;
+
+#ifdef USE_WINDOWS_LCID_MAPPING_API
+ char locName[LOCALE_NAME_MAX_LENGTH] = {}; // ICU name can't be longer than Windows name
+
+ // Note: Windows primary lang ID 0x92 in LCID is used for Central Kurdish and
+ // GetLocaleInfo() maps such LCID to "ku". However, CLDR uses "ku" for
+ // Northern Kurdish and "ckb" for Central Kurdish. For this reason, we cannot
+ // use the Windows API to resolve locale ID for this specific case.
+ if ((hostid & 0x3FF) != 0x92) {
+ int32_t tmpLen = 0;
+ UChar windowsLocaleName[LOCALE_NAME_MAX_LENGTH]; // ULOC_FULLNAME_CAPACITY > LOCALE_NAME_MAX_LENGTH
+
+ // Note: LOCALE_ALLOW_NEUTRAL_NAMES was enabled in Windows7+, prior versions did not handle neutral (no-region) locale names.
+ tmpLen = LCIDToLocaleName(hostid, (PWSTR)windowsLocaleName, UPRV_LENGTHOF(windowsLocaleName), LOCALE_ALLOW_NEUTRAL_NAMES);
+ if (tmpLen > 1) {
+ int32_t i = 0;
+ // Only need to look up in table if have _, eg for de-de_phoneb type alternate sort.
+ bLookup = FALSE;
+ for (i = 0; i < UPRV_LENGTHOF(locName); i++)
+ {
+ locName[i] = (char)(windowsLocaleName[i]);
+
+ // Windows locale name may contain sorting variant, such as "es-ES_tradnl".
+ // In such cases, we need special mapping data found in the hardcoded table
+ // in this source file.
+ if (windowsLocaleName[i] == L'_')
+ {
+ // Keep the base locale, without variant
+ // TODO: Should these be mapped from _phoneb to @collation=phonebook, etc.?
+ locName[i] = '\0';
+ tmpLen = i;
+ bLookup = TRUE;
+ break;
+ }
+ else if (windowsLocaleName[i] == L'-')
+ {
+ // Windows names use -, ICU uses _
+ locName[i] = '_';
+ }
+ else if (windowsLocaleName[i] == L'\0')
+ {
+ // No point in doing more work than necessary
+ break;
+ }
+ }
+ // TODO: Need to understand this better, why isn't it an alias?
+ FIX_LANGUAGE_ID_TAG(locName, tmpLen);
+ pPosixID = locName;
+ }
+ }
+#endif // USE_WINDOWS_LCID_MAPPING_API
+
+ if (bLookup) {
+ const char *pCandidate = NULL;
+ langID = LANGUAGE_LCID(hostid);
+
+ for (localeIndex = 0; localeIndex < gLocaleCount; localeIndex++) {
+ if (langID == gPosixIDmap[localeIndex].regionMaps->hostID) {
+ pCandidate = getPosixID(&gPosixIDmap[localeIndex], hostid);
+ break;
+ }
+ }
+
+ /* On Windows, when locale name has a variant, we still look up the hardcoded table.
+ If a match in the hardcoded table is longer than the Windows locale name without
+ variant, we use the one as the result */
+ if (pCandidate && (pPosixID == NULL || uprv_strlen(pCandidate) > uprv_strlen(pPosixID))) {
+ pPosixID = pCandidate;
+ }
+ }
+
+ if (pPosixID) {
+ int32_t resLen = static_cast<int32_t>(uprv_strlen(pPosixID));
+ int32_t copyLen = resLen <= posixIDCapacity ? resLen : posixIDCapacity;
+ uprv_memcpy(posixID, pPosixID, copyLen);
+ if (resLen < posixIDCapacity) {
+ posixID[resLen] = 0;
+ if (*status == U_STRING_NOT_TERMINATED_WARNING) {
+ *status = U_ZERO_ERROR;
+ }
+ } else if (resLen == posixIDCapacity) {
+ *status = U_STRING_NOT_TERMINATED_WARNING;
+ } else {
+ *status = U_BUFFER_OVERFLOW_ERROR;
+ }
+ return resLen;
+ }
+
+ /* no match found */
+ *status = U_ILLEGAL_ARGUMENT_ERROR;
+ return -1;
+}
+
+/*
+//////////////////////////////////////
+//
+// POSIX --> LCID
+// This should only be called from uloc_getLCID.
+// The locale ID must be in canonical form.
+//
+/////////////////////////////////////
+*/
+U_CAPI uint32_t
+uprv_convertToLCIDPlatform(const char* localeID)
+{
+ // The purpose of this function is to leverage native platform name->lcid
+ // conversion functionality when available.
+#ifdef USE_WINDOWS_LCID_MAPPING_API
+ DWORD nameLCIDFlags = 0;
+ UErrorCode myStatus = U_ZERO_ERROR;
+
+ // First check for a Windows name->LCID match, fall through to catch
+ // ICU special cases, but Windows may know it already.
+#if LOCALE_ALLOW_NEUTRAL_NAMES
+ nameLCIDFlags = LOCALE_ALLOW_NEUTRAL_NAMES;
+#endif /* LOCALE_ALLOW_NEUTRAL_NAMES */
+
+ int32_t len;
+ char collVal[ULOC_KEYWORDS_CAPACITY] = {};
+ char baseName[ULOC_FULLNAME_CAPACITY] = {};
+ const char * mylocaleID = localeID;
+
+ // Check any for keywords.
+ if (uprv_strchr(localeID, '@'))
+ {
+ len = uloc_getKeywordValue(localeID, "collation", collVal, UPRV_LENGTHOF(collVal) - 1, &myStatus);
+ if (U_SUCCESS(myStatus) && len > 0)
+ {
+ // If it contains the keyword collation, return 0 so that the LCID lookup table will be used.
+ return 0;
+ }
+ else
+ {
+ // If the locale ID contains keywords other than collation, just use the base name.
+ len = uloc_getBaseName(localeID, baseName, UPRV_LENGTHOF(baseName) - 1, &myStatus);
+
+ if (U_SUCCESS(myStatus) && len > 0)
+ {
+ baseName[len] = 0;
+ mylocaleID = baseName;
+ }
+ }
+ }
+
+ char asciiBCP47Tag[LOCALE_NAME_MAX_LENGTH] = {};
+ // this will change it from de_DE at collation=phonebook to de-DE-u-co-phonebk form
+ (void)uloc_toLanguageTag(mylocaleID, asciiBCP47Tag, UPRV_LENGTHOF(asciiBCP47Tag), FALSE, &myStatus);
+
+ if (U_SUCCESS(myStatus))
+ {
+ // Need it to be UTF-16, not 8-bit
+ wchar_t bcp47Tag[LOCALE_NAME_MAX_LENGTH] = {};
+ int32_t i;
+ for (i = 0; i < UPRV_LENGTHOF(bcp47Tag); i++)
+ {
+ if (asciiBCP47Tag[i] == '\0')
+ {
+ break;
+ }
+ else
+ {
+ // Copy the character
+ bcp47Tag[i] = static_cast<wchar_t>(asciiBCP47Tag[i]);
+ }
+ }
+
+ if (i < (UPRV_LENGTHOF(bcp47Tag) - 1))
+ {
+ // Ensure it's null terminated
+ bcp47Tag[i] = L'\0';
+ LCID lcid = LocaleNameToLCID(bcp47Tag, nameLCIDFlags);
+ if (lcid > 0)
+ {
+ // Found LCID from windows, return that one, unless its completely ambiguous
+ // LOCALE_USER_DEFAULT and transients are OK because they will round trip
+ // for this process.
+ if (lcid != LOCALE_CUSTOM_UNSPECIFIED)
+ {
+ return lcid;
+ }
+ }
+ }
+ }
+#else
+ (void)localeID; // Suppress unused variable warning.
+#endif /* USE_WINDOWS_LCID_MAPPING_API */
+
+ // No found, or not implemented on platforms without native name->lcid conversion
+ return 0;
+}
+
+U_CAPI uint32_t
+uprv_convertToLCID(const char *langID, const char* posixID, UErrorCode* status)
+{
+ // This function does the table lookup when native platform name->lcid conversion isn't available,
+ // or for locales that don't follow patterns the platform expects.
+ uint32_t low = 0;
+ uint32_t high = gLocaleCount;
+ uint32_t mid;
+ uint32_t oldmid = 0;
+ int32_t compVal;
+
+ uint32_t value = 0;
+ uint32_t fallbackValue = (uint32_t)-1;
+ UErrorCode myStatus;
+ uint32_t idx;
+
+ /* Check for incomplete id. */
+ if (!langID || !posixID || uprv_strlen(langID) < 2 || uprv_strlen(posixID) < 2) {
+ return 0;
+ }
+
+ /*Binary search for the map entry for normal cases */
+
+ while (high > low) /*binary search*/{
+
+ mid = (high+low) >> 1; /*Finds median*/
+
+ if (mid == oldmid)
+ break;
+
+ compVal = uprv_strcmp(langID, gPosixIDmap[mid].regionMaps->posixID);
+ if (compVal < 0){
+ high = mid;
+ }
+ else if (compVal > 0){
+ low = mid;
+ }
+ else /*we found it*/{
+ return getHostID(&gPosixIDmap[mid], posixID, status);
+ }
+ oldmid = mid;
+ }
+
+ /*
+ * Sometimes we can't do a binary search on posixID because some LCIDs
+ * go to different locales. We hit one of those special cases.
+ */
+ for (idx = 0; idx < gLocaleCount; idx++ ) {
+ myStatus = U_ZERO_ERROR;
+ value = getHostID(&gPosixIDmap[idx], posixID, &myStatus);
+ if (myStatus == U_ZERO_ERROR) {
+ return value;
+ }
+ else if (myStatus == U_USING_FALLBACK_WARNING) {
+ fallbackValue = value;
+ }
+ }
+
+ if (fallbackValue != (uint32_t)-1) {
+ *status = U_USING_FALLBACK_WARNING;
+ return fallbackValue;
+ }
+
+ /* no match found */
+ *status = U_ILLEGAL_ARGUMENT_ERROR;
+ return 0; /* return international (root) */
+}
Property changes on: trunk/Build/source/libs/icu/icu-src/source/common/locmap.cpp
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Build/source/libs/icu/icu-src/source/common/locmap.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locmap.h 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locmap.h 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
******************************************************************************
@@ -32,7 +32,8 @@
U_CAPI int32_t uprv_convertToPosix(uint32_t hostid, char* posixID, int32_t posixIDCapacity, UErrorCode* status);
-/* Don't call this function directly. Use uloc_getLCID instead. */
+/* Don't call these functions directly. Use uloc_getLCID instead. */
+U_CAPI uint32_t uprv_convertToLCIDPlatform(const char *localeID); // Leverage platform conversion if possible
U_CAPI uint32_t uprv_convertToLCID(const char *langID, const char* posixID, UErrorCode* status);
#endif /* LOCMAP_H */
Modified: trunk/Build/source/libs/icu/icu-src/source/common/locresdata.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locresdata.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locresdata.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
@@ -8,7 +8,7 @@
*
*******************************************************************************
* file name: loclikely.cpp
-* encoding: US-ASCII
+* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
Modified: trunk/Build/source/libs/icu/icu-src/source/common/locutil.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locutil.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locutil.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
Modified: trunk/Build/source/libs/icu/icu-src/source/common/locutil.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/locutil.h 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/locutil.h 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/**
*******************************************************************************
Modified: trunk/Build/source/libs/icu/icu-src/source/common/messageimpl.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/messageimpl.h 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/messageimpl.h 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
@@ -6,7 +6,7 @@
* Corporation and others. All Rights Reserved.
*******************************************************************************
* file name: messageimpl.h
-* encoding: US-ASCII
+* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
Modified: trunk/Build/source/libs/icu/icu-src/source/common/messagepattern.cpp
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/messagepattern.cpp 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/messagepattern.cpp 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
*******************************************************************************
@@ -6,7 +6,7 @@
* Corporation and others. All Rights Reserved.
*******************************************************************************
* file name: messagepattern.cpp
-* encoding: US-ASCII
+* encoding: UTF-8
* tab size: 8 (not used)
* indentation:4
*
Modified: trunk/Build/source/libs/icu/icu-src/source/common/msvcres.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/msvcres.h 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/msvcres.h 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
//{{NO_DEPENDENCIES}}
// Copyright (c) 2003-2010 International Business Machines
Modified: trunk/Build/source/libs/icu/icu-src/source/common/mutex.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/mutex.h 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/mutex.h 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,4 +1,4 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
/*
******************************************************************************
Modified: trunk/Build/source/libs/icu/icu-src/source/common/norm2_nfc_data.h
===================================================================
--- trunk/Build/source/libs/icu/icu-src/source/common/norm2_nfc_data.h 2018-01-12 01:23:08 UTC (rev 46289)
+++ trunk/Build/source/libs/icu/icu-src/source/common/norm2_nfc_data.h 2018-01-12 18:35:28 UTC (rev 46290)
@@ -1,24 +1,25 @@
-// Copyright (C) 2016 and later: Unicode, Inc. and others.
+// © 2016 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
-/*
- * Copyright (C) 1999-2016, International Business Machines
- * Corporation and others. All Rights Reserved.
- *
- * file name: norm2_nfc_data.h
- *
- * machine-generated by: icu/source/tools/gennorm2/n2builder.cpp
- */
+//
+// Copyright (C) 1999-2016, International Business Machines
+// Corporation and others. All Rights Reserved.
+//
+// file name: norm2_nfc_data.h
+//
+// machine-generated by: icu/source/tools/gennorm2/n2builder.cpp
+
#ifdef INCLUDED_FROM_NORMALIZER2_CPP
-static const UVersionInfo norm2_nfc_data_formatVersion={2,0,0,0};
-static const UVersionInfo norm2_nfc_data_dataVersion={9,0,0,0};
+static const UVersionInfo norm2_nfc_data_formatVersion={3,0,0,0};
+static const UVersionInfo norm2_nfc_data_dataVersion={0xa,0,0,0};
static const int32_t norm2_nfc_data_indexes[Normalizer2Impl::IX_COUNT]={
-0x40,0x4bb8,0x880c,0x890c,0x890c,0x890c,0x890c,0x890c,0xc0,0x300,0x56e,0x14e7,0x1e2a,0xfe00,0x941,0
+0x50,0x4cc0,0x8918,0x8a18,0x8a18,0x8a18,0x8a18,0x8a18,0xc0,0x300,0xadc,0x29d0,0x3c56,0xfc00,0x1282,0x3b8c,
+0x3c24,0x3c56,0x300,0
};
-static const uint16_t norm2_nfc_data_trieIndex[9652]={
+static const uint16_t norm2_nfc_data_trieIndex[9776]={
0x2a8,0x2b0,0x2b8,0x2c0,0x2ce,0x2d6,0x2de,0x2e6,0x2ee,0x2f6,0x2fe,0x306,0x30e,0x316,0x31c,0x324,
0x32c,0x334,0x2c7,0x2cf,0x339,0x341,0x2c7,0x2cf,0x349,0x351,0x359,0x361,0x369,0x371,0x379,0x381,
0x389,0x391,0x399,0x3a1,0x3a9,0x3b1,0x3b9,0x3c1,0x2c7,0x2cf,0x2c7,0x2cf,0x3c8,0x3d0,0x3d8,0x3e0,
@@ -25,25 +26,25 @@
0x3e4,0x3ec,0x3f2,0x3fa,0x2c7,0x2cf,0x402,0x40a,0x40e,0x416,0x41e,0x426,0x2c7,0x2cf,0x424,0x42c,
0x431,0x438,0x43c,0x2c7,0x2c7,0x2c7,0x443,0x44b,0x2c7,0x453,0x45b,0x2c7,0x2c7,0x463,0x46b,0x2c7,
0x2c7,0x473,0x47b,0x2c7,0x2c7,0x483,0x48b,0x2c7,0x2c7,0x463,0x492,0x2c7,0x49a,0x4a0,0x4a8,0x2c7,
-0x2c7,0x2c7,0x4af,0x2c7,0x2c7,0x4b5,0x4bd,0x2c7,0x2c7,0x4a0,0x4c4,0x2c7,0x2c7,0x2c7,0x4ca,0x2c7,
-0x2c7,0x4d2,0x4d9,0x2c7,0x2c7,0x4dc,0x4e3,0x2c7,0x4e6,0x4ed,0x4f5,0x4fd,0x505,0x50d,0x514,0x2c7,
-0x2c7,0x51b,0x2c7,0x2c7,0x522,0x2c7,0x2c7,0x2c7,0x929,0x2c7,0x2c7,0x931,0x2c7,0x937,0x93f,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x526,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
+0x2c7,0x2c7,0x4af,0x2c7,0x2c7,0x4b5,0x4bd,0x2c7,0x2c7,0x4c3,0x4cb,0x2c7,0x2c7,0x2c7,0x4d1,0x2c7,
+0x2c7,0x4d9,0x4e0,0x2c7,0x2c7,0x4e3,0x4ea,0x2c7,0x4ed,0x4f4,0x4fc,0x504,0x50c,0x514,0x51b,0x2c7,
+0x2c7,0x522,0x2c7,0x2c7,0x529,0x2c7,0x2c7,0x2c7,0x93b,0x2c7,0x2c7,0x943,0x2c7,0x949,0x951,0x2c7,
+0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x52d,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x52e,0x52e,0x2c7,0x2c7,0x2c7,0x2c7,0x534,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x53c,0x2c7,0x2c7,0x2c7,0x53f,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x546,0x2c7,0x2c7,0x54e,0x2c7,0x556,0x2c7,0x2c7,0x55e,0x563,0x56b,0x571,0x2c7,0x577,0x2c7,0x57e,
-0x2c7,0x583,0x2c7,0x2c7,0x2c7,0x2c7,0x589,0x591,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x599,0x59e,
-0x5a6,0x5ae,0x5b6,0x5be,0x5c6,0x5ce,0x5d6,0x5de,0x5e6,0x5ee,0x5f6,0x5fe,0x606,0x60e,0x616,0x61e,
-0x626,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x62a,0x632,0x2c7,0x639,0x2c7,0x2c7,0x63d,0x644,0x649,0x2c7,
-0x651,0x659,0x661,0x669,0x671,0x679,0x2c7,0x681,0x2c7,0x687,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
+0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x535,0x535,0x2c7,0x2c7,0x2c7,0x2c7,0x53b,0x2c7,
+0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x543,0x2c7,0x2c7,0x2c7,0x546,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
+0x54d,0x2c7,0x2c7,0x555,0x2c7,0x55d,0x2c7,0x2c7,0x565,0x56a,0x572,0x578,0x2c7,0x57e,0x2c7,0x585,
+0x2c7,0x58a,0x2c7,0x2c7,0x2c7,0x2c7,0x590,0x598,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x5a0,0x5a5,
+0x5ad,0x5b5,0x5bd,0x5c5,0x5cd,0x5d5,0x5dd,0x5e5,0x5ed,0x5f5,0x5fd,0x605,0x60d,0x615,0x61d,0x625,
+0x62d,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x631,0x639,0x2c7,0x640,0x2c7,0x2c7,0x644,0x64b,0x650,0x2c7,
+0x658,0x660,0x668,0x670,0x678,0x680,0x2c7,0x688,0x2c7,0x68e,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x68a,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x692,0x2c7,0x2c7,0x2c7,0x697,0x2c7,0x2c7,0x2c7,0x69f,
+0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x691,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
+0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x699,0x2c7,0x2c7,0x2c7,0x69e,0x2c7,0x2c7,0x2c7,0x6a6,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x6a7,0x6ae,0x6b6,0x6be,0x6c6,0x6ce,0x6d6,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
+0x2c7,0x6ae,0x6b5,0x6bd,0x6c5,0x6cd,0x6d5,0x6dd,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
@@ -102,32 +103,32 @@
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x6de,0x6e6,0x2c7,0x2c7,0x6ee,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x6f5,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x6fc,0x704,0x2c7,0x70a,0x70e,0x2c7,0x2c7,0x584,0x716,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x71a,0x722,0x725,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x48b,
-0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,
-0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,
-0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,
-0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,
-0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,
-0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,
-0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,
-0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,
-0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,
-0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,
-0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,
-0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,
-0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,
-0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,
-0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,
-0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,
-0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,
-0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,
-0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,
-0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,
-0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,
-0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x947,0x94e,0x2c7,0x2c7,
-0x956,0x95d,0x2a8,0x964,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,
+0x2c7,0x2c7,0x2c7,0x6e5,0x6ed,0x2c7,0x2c7,0x6f5,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
+0x6fc,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x703,0x70b,0x2c7,0x711,0x715,0x2c7,0x2c7,0x58b,0x71d,0x2c7,
+0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x721,0x729,0x72c,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x48b,
+0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,
+0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,
+0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,
+0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,
+0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,
+0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,
+0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,
+0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,
+0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,
+0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,
+0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,
+0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,
+0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,
+0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,
+0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,
+0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,
+0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,
+0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,
+0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,
+0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,
+0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,
+0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x96d,0x959,0x95a,0x95b,0x95c,0x95d,0x95e,0x965,0x2c7,0x2c7,
+0x975,0x97c,0x2a8,0x983,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,
0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,0x2a8,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
@@ -143,489 +144,496 @@
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x72d,0x735,0x73d,0x745,0x74d,0x755,0x75d,0x765,
-0x76d,0x775,0x77d,0x785,0x78d,0x795,0x79d,0x2c7,0x7a4,0x7ac,0x7b4,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
+0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x734,0x73c,0x744,0x74c,0x754,0x75c,0x764,0x76c,
+0x774,0x77c,0x784,0x78c,0x794,0x79c,0x7a4,0x2c7,0x7ab,0x7b3,0x7bb,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x7bc,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
+0x2c7,0x7c3,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0xb20,0xb20,0xb38,0xb78,0xbb8,0xbf8,0xc38,0xc70,0xcb0,0xb1c,0xce4,0xb1c,0xd24,0xd64,0xda4,0xde4,
0xe24,0xe64,0xea4,0xee4,0xb1c,0xb1c,0xf20,0xf60,0xf90,0xfc8,0xb1c,0x1008,0x1038,0x1078,0xb1c,0x1090,
-0x880,0x8b0,0x8ee,0x928,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x951,0x188,0x188,
-0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x96d,0x188,0x188,0x9a3,0x188,0x9e3,0xa1d,0x188,0x188,
+0x880,0x8b0,0x8ee,0x928,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x953,0x188,0x188,
+0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x96f,0x188,0x188,0x9a5,0x188,0x9e5,0xa1f,0x188,0x188,
0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,
-0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0xa5d,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x7c0,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x7c8,0x2c7,0x2c7,0x2c7,0x7cb,0x2c7,0x2c7,0x2c7,0x2c7,
+0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0xa5f,
+0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x7c7,
+0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x7cf,0x2c7,0x2c7,0x2c7,0x7d2,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x7d2,0x7d6,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x7de,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
+0x7d9,0x7dd,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x7e5,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x6f5,0x697,0x7e0,0x7e8,0x2c7,0x2c7,0x7f0,0x7f7,0x2c7,0x584,0x2c7,0x2c7,0x7ff,0x2c7,0x2c7,0x802,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x808,0x2c7,0x463,0x80f,0x816,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x81e,0x2c7,0x2c7,0x822,0x82a,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x82f,0x837,0x2c7,0x2c7,0x697,
-0x2c7,0x2c7,0x2c7,0x83a,0x2c7,0x2c7,0x2c7,0x840,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
+0x6fc,0x69e,0x7e7,0x7ef,0x2c7,0x2c7,0x7f7,0x7fe,0x2c7,0x58b,0x2c7,0x2c7,0x806,0x2c7,0x2c7,0x809,
+0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x80f,0x2c7,0x463,0x816,0x81d,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
+0x825,0x2c7,0x2c7,0x829,0x831,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x836,0x83e,0x2c7,0x2c7,0x69e,
+0x2c7,0x2c7,0x2c7,0x841,0x2c7,0x2c7,0x2c7,0x847,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
+0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x535,0x848,0x2c7,0x84a,0x2c7,0x2c7,0x2c7,
+0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x69e,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
+0x2c7,0x2c7,0x852,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
+0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x856,0x2c7,0x85c,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x697,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x844,0x2c7,0x84a,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
+0x2c7,0x2c7,0x2c7,0x862,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
+0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x86a,
+0x872,0x87a,0x880,0x888,0x2c7,0x2c7,0x2c7,0x890,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x850,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x858,0x860,0x868,
-0x86e,0x876,0x2c7,0x2c7,0x2c7,0x87e,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
+0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x898,0x8a0,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x886,0x88e,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
+0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x8a4,0x2c7,0x2c7,0x2c7,0x8ab,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x892,0x2c7,0x2c7,0x2c7,0x899,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
+0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x8b3,
+0x8bb,0x8c3,0x8cb,0x8d3,0x8db,0x8e3,0x8eb,0x8f3,0x8fb,0x903,0x90b,0x913,0x91b,0x923,0x92b,0x933,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x8a1,0x8a9,0x8b1,
-0x8b9,0x8c1,0x8c9,0x8d1,0x8d9,0x8e1,0x8e9,0x8f1,0x8f9,0x901,0x909,0x911,0x919,0x921,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,
-0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2a7,0x2a7,0x2a7,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,2,4,6,0,
-0,8,0x28,0x2e,0x38,0x44,0x66,0x68,0x76,0x84,0xa2,0xa4,0xae,0xba,0xc0,0xd2,
-0xf2,0,0xf6,0x106,0x114,0x122,0x148,0x14c,0x158,0x15c,0x16e,0,0,0,0,0,
-0,0x17a,0x19a,0x1a0,0x1aa,0x1b6,0x1d8,0x1da,0x1e8,0x1f8,0x214,0x218,0x222,0x22e,0x234,0x246,
-0x266,0,0x26a,0x27a,0x288,0x298,0x2be,0x2c2,0x2d0,0x2d4,0x2e8,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x2f4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x941,0x944,0x56f,0x947,0x57a,0x57f,0x2fa,0x584,
-0x94a,0x94d,0x589,0x950,0x953,0x956,0x959,0x594,0,0x95c,0x95f,0x962,0x599,0x5a4,0x5ad,0,
-0x2fe,0x965,0x968,0x96b,0x5b2,0x96e,0,0,0x971,0x974,0x5bd,0x977,0x5c8,0x5cd,0x300,0x5d2,
-0x97a,0x97d,0x5d7,0x980,0x983,0x986,0x989,0x5e2,0,0x98c,0x98f,0x992,0x5e7,0x5f2,0x5fb,0,
-0x304,0x995,0x998,0x99b,0x600,0x99e,0,0x9a1,0x9a4,0x9a7,0x60b,0x616,0x9aa,0x9ad,0x9b0,0x9b3,
-0x9b6,0x9b9,0x9bc,0x9bf,0x9c2,0x9c5,0x9c8,0x9cb,0,0,0x621,0x628,0x9ce,0x9d1,0x9d4,0x9d7,
-0x9da,0x9dd,0x9e0,0x9e3,0x9e6,0x9e9,0x9ec,0x9ef,0x9f2,0x9f5,0x9f8,0x9fb,0x9fe,0xa01,0,0,
-0xa04,0xa07,0xa0a,0xa0d,0xa10,0xa13,0xa16,0xa19,0xa1c,0,0,0,0xa1f,0xa22,0xa25,0xa28,
-0,0xa2b,0xa2e,0xa31,0xa34,0xa37,0xa3a,0,0,0,0,0xa3d,0xa40,0xa43,0xa46,0xa49,
-0xa4c,0,0,0,0x62f,0x636,0xa4f,0xa52,0xa55,0xa58,0,0,0xa5b,0xa5e,0xa61,0xa64,
-0xa67,0xa6a,0x63d,0x642,0xa6d,0xa70,0xa73,0xa76,0x647,0x64c,0xa79,0xa7c,0xa7f,0xa82,0,0,
-0x651,0x656,0x65b,0x660,0xa85,0xa88,0xa8b,0xa8e,0xa91,0xa94,0xa97,0xa9a,0xa9d,0xaa0,0xaa3,0xaa6,
-0xaa9,0xaac,0xaaf,0xab2,0xab5,0xab8,0xabb,0x306,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x665,0x672,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0x67f,0x68c,0,0,0,0,0,0,0x308,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0xabe,0xac1,0xac4,
-0xac7,0xaca,0xacd,0xad0,0xad3,0xad7,0xadc,0xae1,0xae6,0xaeb,0xaf0,0xaf5,0xafa,0,0xaff,0xb04,
-0xb09,0xb0e,0xb12,0xb15,0,0,0xb18,0xb1b,0xb1e,0xb21,0x699,0x69e,0xb25,0xb2a,0xb2e,0xb31,
-0xb34,0,0,0,0xb37,0xb3a,0,0,0xb3d,0xb40,0xb44,0xb49,0xb4d,0xb50,0xb53,0xb56,
-0xb59,0xb5c,0xb5f,0xb62,0xb65,0xb68,0xb6b,0xb6e,0xb71,0xb74,0xb77,0xb7a,0xb7d,0xb80,0xb83,0xb86,
-0xb89,0xb8c,0xb8f,0xb92,0xb95,0xb98,0xb9b,0xb9e,0xba1,0xba4,0xba7,0xbaa,0,0,0xbad,0xbb0,
-0,0,0,0,0,0,0x6a3,0x6a8,0x6ad,0x6b2,0xbb4,0xbb9,0xbbe,0xbc3,0x6b7,0x6bc,
-0xbc8,0xbcd,0xbd1,0xbd4,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0x30a,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xfee6,0xfee6,0xfee6,0xfee6,0xfee6,0xffe6,0xfee6,0xfee6,0xfee6,0xfee6,0xfee6,0xfee6,
-0xfee6,0xffe6,0xffe6,0xfee6,0xffe6,0xfee6,0xffe6,0xfee6,0xfee6,0xffe8,0xffdc,0xffdc,0xffdc,0xffdc,0xffe8,0xfed8,
-0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffca,0xffca,0xfedc,0xfedc,0xfedc,0xfedc,0xfeca,0xfeca,0xffdc,0xffdc,0xffdc,
-0xffdc,0xfedc,0xfedc,0xffdc,0xfedc,0xfedc,0xffdc,0xffdc,0xff01,0xff01,0xff01,0xff01,0xfe01,0xffdc,0xffdc,0xffdc,
-0xffdc,0xffe6,0xffe6,0xffe6,0x14e8,0x14eb,0xfee6,0x14ee,0x14f1,0xfef0,0xffe6,0xffdc,0xffdc,0xffdc,0xffe6,0xffe6,
-0xffe6,0xffdc,0xffdc,0,0xffe6,0xffe6,0xffe6,0xffdc,0xffdc,0xffdc,0xffdc,0xffe6,0xffe8,0xffdc,0xffdc,0xffe6,
-0xffe9,0xffea,0xffea,0xffe9,0xffea,0xffea,0xffe9,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,
-0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,0,0x14f4,0,0,0,0,0,0,0,
-0,0,0x14f6,0,0,0,0,0,0,0xbd7,0xbda,0x14f8,0xbdd,0xbe0,0xbe3,0,
-0xbe6,0,0xbe9,0xbec,0xbf0,0x30c,0,0,0,0x31a,0,0x322,0,0x32c,0,0,
-0,0,0,0x33a,0,0x342,0,0,0,0x344,0,0,0,0x350,0xbf4,0xbf7,
-0x6c1,0xbfa,0x6c6,0xbfd,0xc01,0x35a,0,0,0,0x36a,0,0x372,0,0x37e,0,0,
-0,0,0,0x38e,0,0x396,0,0,0,0x39a,0,0,0,0x3aa,0x6cb,0x6d4,
-0xc05,0xc08,0x6dd,0,0,0,0x3b6,0xc0b,0xc0e,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xc11,0xc14,0,0xc17,0,0,0x3ba,0xc1a,0,0,0,0,
-0xc1d,0xc20,0xc23,0,0x3bc,0,0,0x3c0,0,0x3c2,0x3c8,0x3cc,0x3ce,0xc26,0x3d6,0,
-0,0,0x3d8,0,0,0,0,0x3da,0,0,0,0x3e2,0,0,0,0x3e4,
-0,0x3e6,0,0,0x3e8,0,0,0x3ec,0,0x3ee,0x3f4,0x3f8,0x3fa,0xc29,0x402,0,
-0,0,0x404,0,0,0,0,0x406,0,0,0,0x40e,0,0,0,0x410,
-0,0x412,0,0,0xc2c,0xc2f,0,0xc32,0,0,0x414,0xc35,0,0,0,0,
-0xc38,0xc3b,0xc3e,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x416,0x418,0xc41,0xc44,0,0,0,0,
-0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0xc47,0xc4a,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xc4d,0xc50,0xc53,0xc56,0,0,0xc59,0xc5c,0x41a,0x41c,0xc5f,0xc62,
-0xc65,0xc68,0xc6b,0xc6e,0,0,0xc71,0xc74,0xc77,0xc7a,0xc7d,0xc80,0x41e,0x420,0xc83,0xc86,
-0xc89,0xc8c,0xc8f,0xc92,0xc95,0xc98,0xc9b,0xc9e,0xca1,0xca4,0,0,0xca7,0xcaa,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0xffdc,0xffe6,0xffe6,0xffe6,0xffe6,0xffdc,0xffe6,0xffe6,0xffe6,0xffde,0xffdc,0xffe6,0xffe6,0xffe6,0xffe6,
-0xffe6,0xffe6,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffe6,0xffe6,0xffdc,0xffe6,0xffe6,0xffde,0xffe4,0xffe6,
-0xff0a,0xff0b,0xff0c,0xff0d,0xff0e,0xff0f,0xff10,0xff11,0xff12,0xff13,0xff13,0xff14,0xff15,0xff16,0,0xff17,
-0,0xff18,0xff19,0,0xffe6,0xffdc,0,0xff12,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xff1e,0xff1f,0xff20,0,0,0,0,0,
-0,0,0xcad,0xcb0,0xcb3,0xcb6,0xcb9,0x422,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x428,0,0x42a,0xff1b,0xff1c,0xff1d,0xff1e,0xff1f,0xff20,0xff21,0xff22,0xfee6,0xfee6,0xfedc,0xffdc,0xffe6,
-0xffe6,0xffe6,0xffe6,0xffe6,0xffdc,0xffe6,0xffe6,0xffdc,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xff23,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xcbc,0x42c,0xcbf,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0x42e,0xcc2,0,0x430,0xffe6,0xffe6,
-0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffdc,0xffe6,0,0,0xffe6,
-0xffe6,0,0xffdc,0xffe6,0xffe6,0xffdc,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xff24,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xffe6,0xffdc,0xffe6,0xffe6,0xffdc,0xffe6,0xffe6,0xffdc,
-0xffdc,0xffdc,0xffe6,0xffdc,0xffdc,0xffe6,0xffdc,0xffe6,0xffe6,0xffe6,0xffdc,0xffe6,0xffdc,0xffe6,0xffdc,0xffe6,
-0xffdc,0xffe6,0xffe6,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,
-0xffe6,0xffe6,0xffdc,0xffe6,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0,0xffe6,
-0xffe6,0xffe6,0xffe6,0xffe6,0,0xffe6,0xffe6,0xffe6,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xffdc,0xffdc,0xffdc,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0xffdc,
-0xffe6,0xffe6,0xffdc,0xffe6,0xffe6,0xffdc,0xffe6,0xffe6,0xffe6,0xffdc,0xffdc,0xffdc,0xff1b,0xff1c,0xff1d,0xffe6,
-0xffe6,0xffe6,0xffdc,0xffe6,0xffe6,0xffdc,0xffdc,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,0,
-0,0,0,0,0x432,0xcc5,0,0,0,0,0,0,0x434,0xcc8,0,0x436,
-0xccb,0,0,0,0,0,0,0,0xfe07,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xff09,0,0,0,0xffe6,0xffdc,0xffe6,
-0xffe6,0,0,0,0x14fa,0x14fd,0x1500,0x1503,0x1506,0x1509,0x150c,0x150f,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xff07,0,0xfe00,0,0,0,0,0,
-0,0,0,0x438,0,0,0,0xcce,0xcd1,0xff09,0,0,0,0,0,0,
-0,0,0,0xfe00,0,0,0,0,0x1512,0x1515,0,0x1518,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x151b,
-0,0,0x151e,0,0,0,0,0,0xff07,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xff09,0,0,0,0,0,0,
-0,0,0,0,0,0x1521,0x1524,0x1527,0,0,0x152a,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xff07,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xff09,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x43c,
-0xcd4,0,0,0xcd7,0xcda,0xff09,0,0,0,0,0,0,0,0,0xfe00,0xfe00,
-0,0,0,0,0x152d,0x1530,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0x442,0,0xcdd,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xfe00,0,
-0,0,0,0,0,0,0x444,0x448,0,0,0xce0,0xce3,0xce6,0xff09,0,0,
-0,0,0,0,0,0,0,0xfe00,0,0,0,0,0,0,0,0,
-0,0,0x44a,0,0xce9,0,0,0,0,0xff09,0,0,0,0,0,0,
-0,0xff54,0xfe5b,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xff07,0,0,0x44c,0xcec,0,0xfe00,0,0,0,0x44e,0xcef,0xcf2,0,0x6e2,0xcf6,
-0,0xff09,0,0,0,0,0,0,0,0xfe00,0xfe00,0,0,0,0,0,
-0,0,0,0,0,0,0x454,0x458,0,0,0xcfa,0xcfd,0xd00,0xff09,0,0,
-0,0,0,0,0,0,0,0xfe00,0,0,0,0,0,0,0,0,
-0,0,0xfe09,0,0,0,0,0xfe00,0,0,0,0,0,0,0,0,
-0,0x45a,0xd03,0,0x6e7,0xd07,0xd0b,0xfe00,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xff67,0xff67,0xff09,0,0,0,0,0,0,0,0,0,0xff6b,0xff6b,0xff6b,0xff6b,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xff76,0xff76,0,0,0,0,0,0,
-0,0,0,0,0xff7a,0xff7a,0xff7a,0xff7a,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xffdc,0xffdc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xffdc,0,0xffdc,0,0xffd8,0,0,
-0,0,0,0,0,0,0,0x1533,0,0,0,0,0,0,0,0,
-0,0x1536,0,0,0,0,0x1539,0,0,0,0,0x153c,0,0,0,0,
-0x153f,0,0,0,0,0,0,0,0,0,0,0,0,0x1542,0,0,
-0,0,0,0,0,0xff81,0xff82,0x1546,0xff84,0x154a,0x154d,0,0x1550,0,0xff82,0xff82,
-0xff82,0xff82,0,0,0xff82,0x1554,0xffe6,0xffe6,0xff09,0,0xffe6,0xffe6,0,0,0,0,
-0,0,0,0,0,0,0,0x1557,0,0,0,0,0,0,0,0,
-0,0x155a,0,0,0,0,0x155d,0,0,0,0,0x1560,0,0,0,0,
-0x1563,0,0,0,0,0,0,0,0,0,0,0,0,0x1566,0,0,
-0,0,0,0,0,0,0xffdc,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0x460,0xd0e,0,0,0,0,0,0,0,0xfe00,0,0,0,0,0,
-0,0,0,0xff07,0,0xff09,0xff09,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0xffdc,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0xffe6,0xffe6,0xffe6,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0xff09,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0xff09,0,0,0,0,0,0,0,0,0,0,0xffe6,0,0,
-0,0,0,0,0,0,0,0,0,0xffe4,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0xffde,0xffe6,0xffdc,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xffe6,
-0xffdc,0,0,0,0,0,0,0,0xff09,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,
-0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0xffdc,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffdc,0xffdc,0xffdc,
-0xffdc,0xffdc,0xffdc,0xffe6,0xffe6,0xffdc,0,0,0,0,0,0,0,0x462,0xd11,0x464,
-0xd14,0x466,0xd17,0x468,0xd1a,0x46a,0xd1d,0,0,0x46c,0xd20,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xff07,0xfe00,0,0,0,0,0x46e,0xd23,0x470,0xd26,0x472,0x474,0xd29,0xd2c,0x476,0xd2f,
-0xff09,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xffe6,
-0xffdc,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0xff09,0xff09,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xff07,0,
-0,0,0,0,0,0,0,0,0,0,0xff09,0xff09,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0xff07,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xffe6,0xffe6,0xffe6,0,0xff01,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffe6,0xffe6,
-0xffdc,0xffdc,0xffdc,0xffdc,0xffe6,0,0xff01,0xff01,0xff01,0xff01,0xff01,0xff01,0xff01,0,0,0,
-0,0xffdc,0,0,0,0,0,0,0xffe6,0,0,0,0xffe6,0xffe6,0,0,
-0,0,0,0,0xffe6,0xffe6,0xffdc,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffdc,0xffe6,
-0xffe6,0xffea,0xffd6,0xffdc,0xffca,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,
-0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,
-0,0,0,0xffe6,0xffe9,0xffdc,0xffe6,0xffdc,0xd32,0xd35,0xd38,0xd3b,0xd3e,0xd41,0xd44,0xd47,
-0xd4b,0xd50,0xd54,0xd57,0xd5a,0xd5d,0xd60,0xd63,0xd66,0xd69,0xd6c,0xd6f,0xd73,0xd78,0xd7d,0xd82,
-0xd86,0xd89,0xd8c,0xd8f,0xd93,0xd98,0xd9c,0xd9f,0xda2,0xda5,0xda8,0xdab,0xdae,0xdb1,0xdb4,0xdb7,
-0xdba,0xdbd,0xdc0,0xdc3,0xdc6,0xdc9,0xdcd,0xdd2,0xdd6,0xdd9,0xddc,0xddf,0xde2,0xde5,0x6ec,0x6f1,
-0xde9,0xdee,0xdf2,0xdf5,0xdf8,0xdfb,0xdfe,0xe01,0xe04,0xe07,0xe0a,0xe0d,0xe10,0xe13,0xe16,0xe19,
-0xe1c,0xe1f,0xe22,0xe25,0xe29,0xe2e,0xe33,0xe38,0xe3d,0xe42,0xe47,0xe4c,0xe50,0xe53,0xe56,0xe59,
-0xe5c,0xe5f,0x6f6,0x6fb,0xe63,0xe68,0xe6c,0xe6f,0xe72,0xe75,0x700,0x705,0xe79,0xe7e,0xe83,0xe88,
-0xe8d,0xe92,0xe96,0xe99,0xe9c,0xe9f,0xea2,0xea5,0xea8,0xeab,0xeae,0xeb1,0xeb4,0xeb7,0xeba,0xebd,
-0xec1,0xec6,0xecb,0xed0,0xed4,0xed7,0xeda,0xedd,0xee0,0xee3,0xee6,0xee9,0xeec,0xeef,0xef2,0xef5,
-0xef8,0xefb,0xefe,0xf01,0xf04,0xf07,0xf0a,0xf0d,0xf10,0xf13,0xf16,0xf19,0xf1c,0xf1f,0xf22,0xf25,
-0xf28,0xf2b,0,0xf2e,0,0,0,0,0x70a,0x711,0xf31,0xf34,0xf38,0xf3d,0xf42,0xf47,
-0xf4c,0xf51,0xf56,0xf5b,0xf60,0xf65,0xf6a,0xf6f,0xf74,0xf79,0xf7e,0xf83,0xf88,0xf8d,0xf92,0xf97,
-0x718,0x71d,0xf9b,0xf9e,0xfa1,0xfa4,0xfa8,0xfad,0xfb2,0xfb7,0xfbc,0xfc1,0xfc6,0xfcb,0xfd0,0xfd5,
-0xfd9,0xfdc,0xfdf,0xfe2,0x722,0x727,0xfe5,0xfe8,0xfec,0xff1,0xff6,0xffb,0x1000,0x1005,0x100a,0x100f,
-0x1014,0x1019,0x101e,0x1023,0x1028,0x102d,0x1032,0x1037,0x103c,0x1041,0x1046,0x104b,0x104f,0x1052,0x1055,0x1058,
-0x105c,0x1061,0x1066,0x106b,0x1070,0x1075,0x107a,0x107f,0x1084,0x1089,0x108d,0x1090,0x1093,0x1096,0x1099,0x109c,
-0x109f,0x10a2,0,0,0,0,0,0,0x72c,0x737,0x743,0x74a,0x751,0x758,0x75f,0x766,
-0x76c,0x777,0x783,0x78a,0x791,0x798,0x79f,0x7a6,0x7ac,0x7b3,0x10a6,0x10ab,0x10b0,0x10b5,0,0,
-0x7ba,0x7c1,0x10ba,0x10bf,0x10c4,0x10c9,0,0,0x7c8,0x7d3,0x7df,0x7e6,0x7ed,0x7f4,0x7fb,0x802,
-0x808,0x813,0x81f,0x826,0x82d,0x834,0x83b,0x842,0x848,0x851,0x10ce,0x10d3,0x10d8,0x10dd,0x10e2,0x10e7,
-0x85a,0x863,0x10ec,0x10f1,0x10f6,0x10fb,0x1100,0x1105,0x86c,0x873,0x110a,0x110f,0x1114,0x1119,0,0,
-0x87a,0x881,0x111e,0x1123,0x1128,0x112d,0,0,0x888,0x891,0x1132,0x1137,0x113c,0x1141,0x1146,0x114b,
-0,0x89a,0,0x1150,0,0x1155,0,0x115a,0x8a3,0x8ae,0x8ba,0x8c1,0x8c8,0x8cf,0x8d6,0x8dd,
-0x8e3,0x8ee,0x8fa,0x901,0x908,0x90f,0x916,0x91d,0x923,0x156a,0x115e,0x156e,0x928,0x1572,0x1161,0x1576,
-0x1164,0x157a,0x1167,0x157e,0x92d,0x1582,0,0,0x116b,0x1170,0x1177,0x117f,0x1187,0x118f,0x1197,0x119f,
-0x11a5,0x11aa,0x11b1,0x11b9,0x11c1,0x11c9,0x11d1,0x11d9,0x11df,0x11e4,0x11eb,0x11f3,0x11fb,0x1203,0x120b,0x1213,
-0x1219,0x121e,0x1225,0x122d,0x1235,0x123d,0x1245,0x124d,0x1253,0x1258,0x125f,0x1267,0x126f,0x1277,0x127f,0x1287,
-0x128d,0x1292,0x1299,0x12a1,0x12a9,0x12b1,0x12b9,0x12c1,0x12c6,0x12c9,0x12cd,0x12d1,0x12d5,0,0x932,0x12da,
-0x12de,0x12e1,0x12e4,0x1586,0x12e7,0,0x1589,0x478,0,0x12ea,0x12ee,0x12f2,0x12f6,0,0x937,0x12fb,
-0x12ff,0x158c,0x1302,0x1590,0x1305,0x1308,0x130b,0x130e,0x1311,0x1314,0x1318,0x1595,0,0,0x131c,0x1320,
-0x1324,0x1327,0x132a,0x159a,0,0x132d,0x1330,0x1333,0x1336,0x1339,0x133d,0x159f,0x1341,0x1344,0x1347,0x134b,
-0x134f,0x1352,0x1355,0x15a4,0x1358,0x135b,0x15a8,0x15ab,0,0,0x135f,0x1363,0x1367,0,0x93c,0x136c,
-0x1370,0x15ae,0x1373,0x15b2,0x1376,0x15b5,0x47e,0,0xfdc1,0xfdc1,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xffe6,0xffe6,0xff01,0xff01,0xffe6,0xffe6,0xffe6,0xffe6,
-0xff01,0xff01,0xff01,0xffe6,0xffe6,0,0,0,0,0xffe6,0,0,0,0xff01,0xff01,0xffe6,
-0xffdc,0xffe6,0xff01,0xff01,0xffdc,0xffdc,0xffdc,0xffdc,0xffe6,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0x15b7,0,0,0,0x15b9,0x15bc,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x484,0,0x486,0,0x488,0,0,0,0,0,0x1379,0x137c,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x137f,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0x1382,0x1385,0x1388,0x48a,0,0x48c,0,0x48e,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0x490,0x138b,0,0,0,0x492,0x138e,0,0x494,
-0x1391,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0x496,0x1394,0x498,0x1397,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0x49a,0,0,0,0,0x139a,0,0x49c,0x139d,0x49e,0,0x13a0,0x4a0,0x13a3,0,0,
-0,0x4a2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x13a6,0x4a4,0x13a9,0,0x4a6,0x4a8,0,0,0,0,0,0,
-0,0x13ac,0x13af,0x13b2,0x13b5,0x13b8,0x4aa,0x4ac,0x13bb,0x13be,0x4ae,0x4b0,0x13c1,0x13c4,0x4b2,0x4b4,
-0x4b6,0x4b8,0,0,0x13c7,0x13ca,0x4ba,0x4bc,0x13cd,0x13d0,0x4be,0x4c0,0x13d3,0x13d6,0,0,
-0,0,0,0,0,0x4c2,0x4c4,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0x4c6,0,0,0,0,0,0x4c8,0x4ca,0,0x4cc,
-0x13d9,0x13dc,0x13df,0x13e2,0,0,0x4ce,0x4d0,0x4d2,0x4d4,0,0,0,0,0,0,
-0,0,0,0,0x13e5,0x13e8,0x13eb,0x13ee,0,0,0,0,0,0,0x13f1,0x13f4,
-0x13f7,0x13fa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0x15bf,0x15c1,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x15c3,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0xff09,0xffe6,0xffe6,0xffe6,0xffe6,
-0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,
-0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,0,
-0,0,0,0,0,0,0xffda,0xffe4,0xffe8,0xffde,0xffe0,0xffe0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x4d6,0,
-0,0,0,0x4d8,0x13fd,0x4da,0x1400,0x4dc,0x1403,0x4de,0x1406,0x4e0,0x1409,0x4e2,0x140c,0x4e4,
-0x140f,0x4e6,0x1412,0x4e8,0x1415,0x4ea,0x1418,0x4ec,0x141b,0x4ee,0x141e,0,0x4f0,0x1421,0x4f2,0x1424,
-0x4f4,0x1427,0,0,0,0,0,0x4f6,0x142a,0x142d,0x4fa,0x1430,0x1433,0x4fe,0x1436,0x1439,
-0x502,0x143c,0x143f,0x506,0x1442,0x1445,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x1448,0,0,0,
-0,0xfe08,0xfe08,0,0,0x50a,0x144b,0,0,0,0,0,0,0,0x50c,0,
-0,0,0,0x50e,0x144e,0x510,0x1451,0x512,0x1454,0x514,0x1457,0x516,0x145a,0x518,0x145d,0x51a,
-0x1460,0x51c,0x1463,0x51e,0x1466,0x520,0x1469,0x522,0x146c,0x524,0x146f,0,0x526,0x1472,0x528,0x1475,
-0x52a,0x1478,0,0,0,0,0,0x52c,0x147b,0x147e,0x530,0x1481,0x1484,0x534,0x1487,0x148a,
-0x538,0x148d,0x1490,0x53c,0x1493,0x1496,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0x540,0x542,0x544,0x546,0,0x1499,0,0,0x149c,
-0x149f,0x14a2,0x14a5,0,0,0x548,0x14a8,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0xffe6,0,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,
-0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0xffe6,0xffe6,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xffe6,0xffe6,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0xff09,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0xff09,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,
-0xffe6,0xffe6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0xffdc,0xffdc,0xffdc,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0xff09,0,0,0,0,
-0,0,0,0,0,0,0,0,0xff09,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xffe6,0,0xffe6,0xffe6,0xffdc,0,0,0xffe6,
-0xffe6,0,0,0,0,0,0xffe6,0xffe6,0,0xffe6,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0xff09,0,0,0,0,0,
-0,0,0,0,0x15c6,0x15c8,0x15ca,0x15cc,0x15ce,0x15d0,0x15d2,0x15d4,0x15d4,0x15d6,0x15d8,0x15da,
-0x15dc,0x15de,0x15e0,0x15e2,0x15e4,0x15e6,0x15e8,0x15ea,0x15ec,0x15ee,0x15f0,0x15f2,0x15f4,0x15f6,0x15f8,0x15fa,
-0x15fc,0x15fe,0x1600,0x1602,0x1604,0x1606,0x1608,0x160a,0x160c,0x160e,0x1610,0x1612,0x1614,0x1616,0x1618,0x161a,
-0x161c,0x161e,0x1620,0x1622,0x1624,0x1626,0x1628,0x162a,0x162c,0x162e,0x1630,0x1632,0x1634,0x1636,0x1638,0x163a,
-0x163c,0x163e,0x1640,0x1642,0x1644,0x1646,0x1648,0x164a,0x164c,0x164e,0x1650,0x1652,0x1654,0x1656,0x1658,0x165a,
-0x165c,0x165e,0x1660,0x1662,0x1664,0x1666,0x1668,0x166a,0x166c,0x166e,0x1670,0x1672,0x1674,0x1676,0x1678,0x167a,
-0x15ec,0x167c,0x167e,0x1680,0x1682,0x1684,0x1686,0x1688,0x168a,0x168c,0x168e,0x1690,0x1692,0x1694,0x1696,0x1698,
-0x169a,0x169c,0x169e,0x16a0,0x16a2,0x16a4,0x16a6,0x16a8,0x16aa,0x16ac,0x16ae,0x16b0,0x16b2,0x16b4,0x16b6,0x16b8,
-0x16ba,0x16bc,0x16be,0x16c0,0x16c2,0x16c4,0x16c6,0x16c8,0x16ca,0x16cc,0x16ce,0x16d0,0x16d2,0x16d4,0x16d6,0x16d8,
-0x16da,0x16dc,0x16de,0x16e0,0x16e2,0x16e4,0x16e6,0x16e8,0x16ea,0x16ec,0x16ee,0x16f0,0x16f2,0x16f4,0x16f6,0x16f8,
-0x16fa,0x16fc,0x16fe,0x1700,0x1702,0x16a0,0x1704,0x1706,0x1708,0x170a,0x170c,0x170e,0x1710,0x1712,0x1680,0x1714,
-0x1716,0x1718,0x171a,0x171c,0x171e,0x1720,0x1722,0x1724,0x1726,0x1728,0x172a,0x172c,0x172e,0x1730,0x1732,0x1734,
-0x1736,0x1738,0x173a,0x15ec,0x173c,0x173e,0x1740,0x1742,0x1744,0x1746,0x1748,0x174a,0x174c,0x174e,0x1750,0x1752,
-0x1754,0x1756,0x1758,0x175a,0x175c,0x175e,0x1760,0x1762,0x1764,0x1766,0x1768,0x176a,0x176c,0x176e,0x1770,0x1684,
-0x1772,0x1774,0x1776,0x1778,0x177a,0x177c,0x177e,0x1780,0x1782,0x1784,0x1786,0x1788,0x178a,0x178c,0x178e,0x1790,
-0x1792,0x1794,0x1796,0x1798,0x179a,0x179c,0x179e,0x17a0,0x17a2,0x17a4,0x17a6,0x17a8,0x17aa,0x17ac,0x17ae,0x17b0,
-0x17b2,0x17b4,0x17b6,0x17b8,0x17ba,0x17bc,0x17be,0x17c0,0x17c2,0x17c4,0x17c6,0x17c8,0x17ca,0x17cc,0x17ce,0x17d0,
-0x17d2,0x17d4,0,0,0x17d6,0,0x17d8,0,0,0x17da,0x17dc,0x17de,0x17e0,0x17e2,0x17e4,0x17e6,
-0x17e8,0x17ea,0x17ec,0,0x17ee,0,0x17f0,0,0,0x17f2,0x17f4,0,0,0,0x17f6,0x17f8,
-0x17fa,0x17fc,0x17fe,0x1800,0x1802,0x1804,0x1806,0x1808,0x180a,0x180c,0x180e,0x1810,0x1812,0x1814,0x1816,0x1818,
-0x181a,0x181c,0x181e,0x1820,0x1822,0x1824,0x1826,0x1828,0x182a,0x182c,0x182e,0x1830,0x1832,0x1834,0x1836,0x1838,
-0x183a,0x183c,0x183e,0x1840,0x1842,0x1844,0x1846,0x1848,0x184a,0x184c,0x184e,0x16ee,0x1850,0x1852,0x1854,0x1856,
-0x1858,0x185a,0x185a,0x185c,0x185e,0x1860,0x1862,0x1864,0x1866,0x1868,0x186a,0x17f2,0x186c,0x186e,0x1870,0x1872,
-0x1874,0x1877,0,0,0x1879,0x187b,0x187d,0x187f,0x1881,0x1883,0x1885,0x1887,0x180e,0x1889,0x188b,0x188d,
-0x17d6,0x188f,0x1891,0x1893,0x1895,0x1897,0x1899,0x189b,0x189d,0x189f,0x18a1,0x18a3,0x18a5,0x1820,0x18a7,0x1822,
-0x18a9,0x18ab,0x18ad,0x18af,0x18b1,0x17d8,0x1616,0x18b3,0x18b5,0x18b7,0x16a2,0x1750,0x18b9,0x18bb,0x1830,0x18bd,
-0x1832,0x18bf,0x18c1,0x18c3,0x17dc,0x18c5,0x18c7,0x18c9,0x18cb,0x18cd,0x17de,0x18cf,0x18d1,0x18d3,0x18d5,0x18d7,
-0x18d9,0x184e,0x18db,0x18dd,0x16ee,0x18df,0x1856,0x18e1,0x18e3,0x18e5,0x18e7,0x18e9,0x1860,0x18eb,0x17f0,0x18ed,
-0x1862,0x167c,0x18ef,0x1864,0x18f1,0x1868,0x18f3,0x18f5,0x18f7,0x18f9,0x18fb,0x186c,0x17e8,0x18fd,0x186e,0x18ff,
-0x1870,0x1901,0x15d4,0x1903,0x1906,0x1909,0x190c,0x190e,0x1910,0x1912,0x1915,0x1918,0x191b,0x191d,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0x191f,0xff1a,0x1922,
-0,0,0,0,0,0,0,0,0,0,0x1925,0x1928,0x192c,0x1931,0x1935,0x1938,
-0x193b,0x193e,0x1941,0x1944,0x1947,0x194a,0x194d,0,0x1950,0x1953,0x1956,0x1959,0x195c,0,0x195f,0,
-0x1962,0x1965,0,0x1968,0x196b,0,0x196e,0x1971,0x1974,0x1977,0x197a,0x197d,0x1980,0x1983,0x1986,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffe6,0xffe6,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0xffdc,0,0,
-0xffdc,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0xffdc,0,0xffe6,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xffe6,0xff01,0xffdc,0,0,0,0,0xff09,0,0,0,0,0,0xffe6,0xffdc,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0x54a,0x14ab,0x54d,0x14b0,0,0,0,
-0,0,0,0,0,0x550,0,0,0,0,0,0x14b5,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0xff09,0xfe07,0,0,0,0,0,
-0xffe6,0xffe6,0xffe6,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0xfe00,0,0,0,0,0,0,0x14ba,0x14bf,0,0x553,0x556,0xff09,
-0xff09,0,0,0,0,0,0,0,0,0,0,0,0xff09,0,0,0,
-0,0,0,0,0,0,0xff07,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0xff09,0xff07,0,
-0,0,0,0,0,0,0,0,0,0xff07,0xff09,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0x559,0,0,0,0x14c4,0x14c9,0xff09,0,0,0,0,0,0,
-0,0,0,0xfe00,0,0,0,0,0,0,0,0,0,0,0xffe6,0xffe6,
-0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0xff09,0,0,0,0xff07,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xfe00,0,0,0,0,0,0,0,
-0,0x55f,0xfe00,0x14ce,0x14d3,0xfe00,0x14d8,0,0,0,0xff09,0xff07,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0xfe00,0,0,0,0,
-0,0,0,0,0x568,0x56b,0x14dd,0x14e2,0,0,0,0xff09,0xff07,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xff09,0xff07,
-0,0,0,0,0,0,0,0,0,0,0,0xff09,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0xff01,0xff01,0xff01,0xff01,0xff01,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xff01,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x1989,0x198e,
-0x1998,0x19a4,0x19b0,0x19bc,0x19c8,0xffd8,0xffd8,0xff01,0xff01,0xff01,0,0,0,0xffe2,0xffd8,0xffd8,
-0xffd8,0xffd8,0xffd8,0,0,0,0,0,0,0,0,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,
-0xffdc,0xffdc,0xffdc,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffdc,0xffdc,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0xffe6,0xffe6,0xffe6,0xffe6,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0x19cf,0x19d4,0x19de,0x19ea,0x19f6,0x1a02,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,
-0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,
-0xffe6,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0,0xffe6,0xffe6,0,0xffe6,0xffe6,
-0xffe6,0xffe6,0xffe6,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0xffdc,0,
-0,0,0,0,0,0,0,0,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xffe6,0xff07,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0x1a09,0x1a0b,0x1a0d,0x1a0f,0x1a12,0x1802,0x1a14,0x1a16,0x1a18,0x1a1a,0x1804,0x1a1c,
-0x1a1e,0x1a20,0x1806,0x1a23,0x1a25,0x1a27,0x1a29,0x1a2c,0x1a2e,0x1a30,0x1a32,0x1a35,0x1a37,0x1a39,0x1a3b,0x187b,
-0x1a3d,0x1a40,0x1a42,0x1a44,0x1a46,0x1a48,0x1a4a,0x1a4c,0x1a4e,0x1885,0x1808,0x180a,0x1887,0x1a50,0x1a52,0x1688,
-0x1a54,0x180c,0x1a56,0x1a58,0x1a5a,0x1a5c,0x1a5c,0x1a5c,0x1a5e,0x1a61,0x1a63,0x1a65,0x1a67,0x1a6a,0x1a6c,0x1a6e,
-0x1a70,0x1a72,0x1a74,0x1a76,0x1a78,0x1a7a,0x1a7c,0x1a7e,0x1a80,0x1a82,0x1a82,0x188b,0x1a84,0x1a86,0x1a88,0x1a8a,
-0x1810,0x1a8c,0x1a8e,0x1a90,0x17ba,0x1a92,0x1a94,0x1a96,0x1a98,0x1a9a,0x1a9c,0x1a9e,0x1aa0,0x1aa2,0x1aa5,0x1aa7,
-0x1aa9,0x1aab,0x1aad,0x1aaf,0x1ab1,0x1ab4,0x1ab7,0x1ab9,0x1abb,0x1abd,0x1abf,0x1ac1,0x1ac3,0x1ac5,0x1ac7,0x1ac7,
-0x1ac9,0x1acc,0x1ace,0x1680,0x1ad0,0x1ad2,0x1ad5,0x1ad7,0x1ad9,0x1adb,0x1add,0x1adf,0x181a,0x1ae1,0x1ae3,0x1ae5,
-0x1ae8,0x1aea,0x1aed,0x1aef,0x1af1,0x1af3,0x1af5,0x1af7,0x1af9,0x1afb,0x1afd,0x1aff,0x1b01,0x1b03,0x1b06,0x1b08,
-0x1b0a,0x1b0c,0x1614,0x1b0e,0x1b11,0x1b13,0x1b13,0x1b16,0x1b18,0x1b18,0x1b1a,0x1b1c,0x1b1f,0x1b22,0x1b24,0x1b26,
-0x1b28,0x1b2a,0x1b2c,0x1b2e,0x1b30,0x1b32,0x1b34,0x181c,0x1b36,0x1b39,0x1b3b,0x1b3d,0x18a3,0x1b3d,0x1b3f,0x1820,
-0x1b41,0x1b43,0x1b45,0x1b47,0x1822,0x15de,0x1b49,0x1b4b,0x1b4d,0x1b4f,0x1b51,0x1b53,0x1b55,0x1b58,0x1b5a,0x1b5c,
-0x1b5e,0x1b60,0x1b62,0x1b65,0x1b67,0x1b69,0x1b6b,0x1b6d,0x1b6f,0x1b71,0x1b73,0x1b75,0x1824,0x1b77,0x1b79,0x1b7c,
-0x1b7e,0x1b80,0x1b82,0x1828,0x1b84,0x1b86,0x1b88,0x1b8a,0x1b8c,0x1b8e,0x1b90,0x1b92,0x1616,0x18b3,0x1b94,0x1b96,
-0x1b98,0x1b9a,0x1b9d,0x1b9f,0x1ba1,0x1ba3,0x182a,0x1ba5,0x1ba8,0x1baa,0x1bac,0x190c,0x1bae,0x1bb0,0x1bb2,0x1bb4,
-0x1bb6,0x1bb9,0x1bbb,0x1bbd,0x1bbf,0x1bc2,0x1bc4,0x1bc6,0x1bc8,0x16a2,0x1bca,0x1bcc,0x1bcf,0x1bd2,0x1bd5,0x1bd7,
-0x1bda,0x1bdc,0x1bde,0x1be0,0x1be2,0x182c,0x1750,0x1be4,0x1be6,0x1be8,0x1bea,0x1bed,0x1bef,0x1bf1,0x1bf3,0x18bb,
-0x1bf5,0x1bf7,0x1bfa,0x1bfc,0x1bfe,0x1c01,0x1c04,0x1c06,0x18bd,0x1c08,0x1c0a,0x1c0c,0x1c0e,0x1c10,0x1c12,0x1c14,
-0x1c17,0x1c19,0x1c1c,0x1c1e,0x1c21,0x18c1,0x1c23,0x1c25,0x1c28,0x1c2a,0x1c2c,0x1c2f,0x1c32,0x1c34,0x1c36,0x1c38,
-0x1c3a,0x1c3a,0x1c3c,0x1c3e,0x18c5,0x1c40,0x1c42,0x1c44,0x1c46,0x1c48,0x1c4b,0x1c4d,0x1686,0x1c50,0x1c53,0x1c55,
-0x1c58,0x1c5b,0x1c5e,0x1c60,0x18d1,0x1c62,0x1c65,0x1c68,0x1c6b,0x1c6e,0x1c70,0x1c70,0x18d3,0x1910,0x1c72,0x1c74,
-0x1c76,0x1c78,0x1c7b,0x163a,0x18d7,0x1c7d,0x1c7f,0x1842,0x1c82,0x1c85,0x17e6,0x1c88,0x1c8a,0x184a,0x1c8c,0x1c8e,
-0x1c90,0x1c93,0x1c93,0x1c96,0x1c98,0x1c9a,0x1c9d,0x1c9f,0x1ca1,0x1ca3,0x1ca6,0x1ca8,0x1caa,0x1cac,0x1cae,0x1cb0,
-0x1cb3,0x1cb5,0x1cb7,0x1cb9,0x1cbb,0x1cbd,0x1cbf,0x1cc2,0x1cc5,0x1cc7,0x1cca,0x1ccc,0x1ccf,0x1cd1,0x1856,0x1cd3,
-0x1cd6,0x1cd9,0x1cdb,0x1cde,0x1ce0,0x1ce3,0x1ce5,0x1ce7,0x1ce9,0x1ceb,0x1ced,0x1cef,0x1cf2,0x1cf5,0x1cf8,0x1b16,
-0x1cfb,0x1cfd,0x1cff,0x1d01,0x1d03,0x1d05,0x1d07,0x1d09,0x1d0b,0x1d0d,0x1d0f,0x1d11,0x16aa,0x1d14,0x1d16,0x1d18,
-0x1d1a,0x1d1c,0x1d1e,0x185c,0x1d20,0x1d22,0x1d24,0x1d26,0x1d28,0x1d2b,0x1d2e,0x1d31,0x1d33,0x1d35,0x1d37,0x1d39,
-0x1d3c,0x1d3e,0x1d41,0x1d43,0x1d45,0x1d48,0x1d4b,0x1d4d,0x1630,0x1d4f,0x1d51,0x1d53,0x1d55,0x1d57,0x1d59,0x18e5,
-0x1d5b,0x1d5d,0x1d5f,0x1d61,0x1d63,0x1d65,0x1d67,0x1d69,0x1d6b,0x1d6d,0x1d70,0x1d72,0x1d74,0x1d76,0x1d78,0x1d7a,
-0x1d7d,0x1d80,0x1d82,0x1d84,0x18ef,0x18f1,0x1d86,0x1d88,0x1d8b,0x1d8d,0x1d8f,0x1d91,0x1d93,0x1d96,0x1d99,0x1d9b,
-0x1d9d,0x1d9f,0x1da2,0x18f3,0x1da4,0x1da7,0x1daa,0x1dac,0x1dae,0x1db0,0x1db3,0x1db5,0x1db7,0x1db9,0x1dbb,0x1dbd,
-0x1dbf,0x1dc1,0x1dc4,0x1dc6,0x1dc8,0x1dca,0x1dcd,0x1dcf,0x1dd1,0x1dd3,0x1dd5,0x1dd8,0x1ddb,0x1ddd,0x1ddf,0x1de1,
-0x1de4,0x1de6,0x18ff,0x18ff,0x1de9,0x1deb,0x1dee,0x1df0,0x1df2,0x1df4,0x1df6,0x1df8,0x1dfa,0x1dfc,0x1901,0x1dff,
-0x1e01,0x1e03,0x1e05,0x1e07,0x1e09,0x1e0c,0x1e0e,0x1e11,0x1e14,0x1e17,0x1e19,0x1e1b,0x1e1d,0x1e1f,0x1e21,0x1e23,
-0x1e25,0x1e27,0,0,1,1,1,1,1,1,1,1,1,1,1,1,
-1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,
-0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0,0,0,0,0,0,
-0,0,0,0,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,
-0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0xff00,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0x56e,0x56e,0x56e,0x56e,
-0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,
-0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0x56e,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0x1e29,0,0x1e29,0,0x1e29,0x1e29,0,0x1e29,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0x1e29,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0x1e29,0,0,0,0,0x1e29,0,0,0,0x1e29,0,0x1e29,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x1e27,0,
-0,0,0,0
+0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2a7,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,4,8,0xc,1,
+1,0x10,0x50,0x5c,0x70,0x88,0xcc,0xd0,0xec,0x108,0x144,0x148,0x15c,0x174,0x180,0x1a4,
+0x1e4,1,0x1ec,0x20c,0x228,0x244,0x290,0x298,0x2b0,0x2b8,0x2dc,1,1,1,1,1,
+1,0x2f4,0x334,0x340,0x354,0x36c,0x3b0,0x3b4,0x3d0,0x3f0,0x428,0x430,0x444,0x45c,0x468,0x48c,
+0x4cc,1,0x4d4,0x4f4,0x510,0x530,0x57c,0x584,0x5a0,0x5a8,0x5d0,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0x5e8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0x1284,0x128a,0xade,0x1290,0xaf4,0xafe,0x5f4,0xb08,
+0x1296,0x129c,0xb12,0x12a2,0x12a8,0x12ae,0x12b4,0xb28,1,0x12ba,0x12c0,0x12c6,0xb32,0xb48,0xb5a,1,
+0x5fc,0x12cc,0x12d2,0x12d8,0xb64,0x12de,1,1,0x12e4,0x12ea,0xb7a,0x12f0,0xb90,0xb9a,0x600,0xba4,
+0x12f6,0x12fc,0xbae,0x1302,0x1308,0x130e,0x1314,0xbc4,1,0x131a,0x1320,0x1326,0xbce,0xbe4,0xbf6,1,
+0x608,0x132c,0x1332,0x1338,0xc00,0x133e,1,0x1344,0x134a,0x1350,0xc16,0xc2c,0x1357,0x135d,0x1362,0x1368,
+0x136e,0x1374,0x137a,0x1380,0x1386,0x138c,0x1392,0x1398,1,1,0xc42,0xc50,0x139e,0x13a4,0x13aa,0x13b0,
+0x13b7,0x13bd,0x13c2,0x13c8,0x13ce,0x13d4,0x13da,0x13e0,0x13e6,0x13ec,0x13f3,0x13f9,0x13fe,0x1404,1,1,
+0x140a,0x1410,0x1416,0x141c,0x1422,0x1428,0x142f,0x1435,0x143a,1,1,1,0x1441,0x1447,0x144d,0x1453,
+1,0x1458,0x145e,0x1465,0x146b,0x1470,0x1476,1,1,1,1,0x147c,0x1482,0x1489,0x148f,0x1494,
+0x149a,1,1,1,0xc5e,0xc6c,0x14a0,0x14a6,0x14ac,0x14b2,1,1,0x14b8,0x14be,0x14c5,0x14cb,
+0x14d0,0x14d6,0xc7a,0xc84,0x14dc,0x14e2,0x14e9,0x14ef,0xc8e,0xc98,0x14f5,0x14fb,0x1500,0x1506,1,1,
+0xca2,0xcac,0xcb6,0xcc0,0x150c,0x1512,0x1518,0x151e,0x1524,0x152a,0x1531,0x1537,0x153c,0x1542,0x1548,0x154e,
+0x1554,0x155a,0x1560,0x1566,0x156c,0x1572,0x1578,0x60c,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0xcca,0xce4,1,1,1,1,1,1,
+1,1,1,1,1,1,1,0xcfe,0xd18,1,1,1,1,1,1,0x610,
+1,1,1,1,1,1,1,1,1,1,1,1,1,0x157e,0x1584,0x158a,
+0x1590,0x1596,0x159c,0x15a2,0x15a8,0x15b0,0x15ba,0x15c4,0x15ce,0x15d8,0x15e2,0x15ec,0x15f6,1,0x1600,0x160a,
+0x1614,0x161e,0x1627,0x162d,1,1,0x1632,0x1638,0x163e,0x1644,0xd32,0xd3c,0x164d,0x1657,0x165f,0x1665,
+0x166b,1,1,1,0x1670,0x1676,1,1,0x167c,0x1682,0x168a,0x1694,0x169d,0x16a3,0x16a9,0x16af,
+0x16b4,0x16ba,0x16c0,0x16c6,0x16cc,0x16d2,0x16d8,0x16de,0x16e4,0x16ea,0x16f0,0x16f6,0x16fc,0x1702,0x1708,0x170e,
+0x1714,0x171a,0x1720,0x1726,0x172c,0x1732,0x1738,0x173e,0x1744,0x174a,0x1750,0x1756,1,1,0x175c,0x1762,
+1,1,1,1,1,1,0xd46,0xd50,0xd5a,0xd64,0x176a,0x1774,0x177e,0x1788,0xd6e,0xd78,
+0x1792,0x179c,0x17a4,0x17aa,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0x614,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0xfdcc,0xfdcc,0xfdcc,0xfdcc,0xfdcc,0xffcc,0xfdcc,0xfdcc,0xfdcc,0xfdcc,0xfdcc,0xfdcc,
+0xfdcc,0xffcc,0xffcc,0xfdcc,0xffcc,0xfdcc,0xffcc,0xfdcc,0xfdcc,0xffd0,0xffb8,0xffb8,0xffb8,0xffb8,0xffd0,0xfdb0,
+0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xff94,0xff94,0xfdb8,0xfdb8,0xfdb8,0xfdb8,0xfd94,0xfd94,0xffb8,0xffb8,0xffb8,
+0xffb8,0xfdb8,0xfdb8,0xffb8,0xfdb8,0xfdb8,0xffb8,0xffb8,0xfe02,0xfe02,0xfe02,0xfe02,0xfc02,0xffb8,0xffb8,0xffb8,
+0xffb8,0xffcc,0xffcc,0xffcc,0x3c26,0x3c2c,0xfdcc,0x3c32,0x3c38,0xfde0,0xffcc,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,
+0xffcc,0xffb8,0xffb8,1,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffd0,0xffb8,0xffb8,0xffcc,
+0xffd2,0xffd4,0xffd4,0xffd2,0xffd4,0xffd4,0xffd2,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,0x29d1,1,1,1,1,1,1,1,
+1,1,0x29d5,1,1,1,1,1,1,0x17b1,0x17b7,0x29d9,0x17bd,0x17c3,0x17c9,1,
+0x17cf,1,0x17d5,0x17db,0x17e3,0x618,1,1,1,0x634,1,0x644,1,0x658,1,1,
+1,1,1,0x674,1,0x684,1,1,1,0x688,1,1,1,0x6a0,0x17eb,0x17f1,
+0xd82,0x17f7,0xd8c,0x17fd,0x1805,0x6b4,1,1,1,0x6d4,1,0x6e4,1,0x6fc,1,1,
+1,1,1,0x71c,1,0x72c,1,1,1,0x734,1,1,1,0x754,0xd96,0xda8,
+0x180d,0x1813,0xdba,1,1,1,0x76c,0x1819,0x181f,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0x1825,0x182b,1,0x1831,1,1,0x774,0x1837,1,1,1,1,
+0x183d,0x1843,0x1849,1,0x778,1,1,0x780,1,0x784,0x790,0x798,0x79c,0x184f,0x7ac,1,
+1,1,0x7b0,1,1,1,1,0x7b4,1,1,1,0x7c4,1,1,1,0x7c8,
+1,0x7cc,1,1,0x7d0,1,1,0x7d8,1,0x7dc,0x7e8,0x7f0,0x7f4,0x1855,0x804,1,
+1,1,0x808,1,1,1,1,0x80c,1,1,1,0x81c,1,1,1,0x820,
+1,0x824,1,1,0x185b,0x1861,1,0x1867,1,1,0x828,0x186d,1,1,1,1,
+0x1873,0x1879,0x187f,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0x82c,0x830,0x1885,0x188b,1,1,1,1,
+1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0x1891,0x1897,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0x189d,0x18a3,0x18a9,0x18af,1,1,0x18b5,0x18bb,0x834,0x838,0x18c1,0x18c7,
+0x18cd,0x18d3,0x18d9,0x18df,1,1,0x18e5,0x18eb,0x18f1,0x18f7,0x18fd,0x1903,0x83c,0x840,0x1909,0x190f,
+0x1915,0x191b,0x1921,0x1927,0x192d,0x1933,0x1939,0x193f,0x1945,0x194b,1,1,0x1951,0x1957,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffbc,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffbc,0xffc8,0xffcc,
+0xfe14,0xfe16,0xfe18,0xfe1a,0xfe1c,0xfe1e,0xfe20,0xfe22,0xfe24,0xfe26,0xfe26,0xfe28,0xfe2a,0xfe2c,1,0xfe2e,
+1,0xfe30,0xfe32,1,0xffcc,0xffb8,1,0xfe24,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xfe3c,0xfe3e,0xfe40,1,1,1,1,1,
+1,1,0x195c,0x1962,0x1969,0x196f,0x1975,0x844,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0x850,1,0x854,0xfe36,0xfe38,0xfe3a,0xfe3c,0xfe3e,0xfe40,0xfe42,0xfe44,0xfdcc,0xfdcc,0xfdb8,0xffb8,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0xfe46,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0x197b,0x858,0x1981,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0x85c,0x1987,1,0x860,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,1,1,0xffcc,
+0xffcc,1,0xffb8,0xffcc,0xffcc,0xffb8,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xfe48,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,
+0xffb8,0xffb8,0xffcc,0xffb8,0xffb8,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffb8,0xffcc,0xffb8,0xffcc,
+0xffb8,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffb8,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xffb8,0xffb8,0xffb8,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffb8,
+0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xfe36,0xfe38,0xfe3a,0xffcc,
+0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,
+1,1,1,1,0x864,0x198d,1,1,1,1,1,1,0x868,0x1993,1,0x86c,
+0x1999,1,1,1,1,1,1,1,0xfc0e,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xfe12,1,1,1,0xffcc,0xffb8,0xffcc,
+0xffcc,1,1,1,0x29dc,0x29e2,0x29e8,0x29ee,0x29f4,0x29fa,0x2a00,0x2a06,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0xfe0e,1,0xfc00,1,1,1,1,1,
+1,1,1,0x870,1,1,1,0x199f,0x19a5,0xfe12,1,1,1,1,1,1,
+1,1,1,0xfc00,1,1,1,1,0x2a0c,0x2a12,1,0x2a18,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x2a1e,
+1,1,0x2a24,1,1,1,1,1,0xfe0e,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xfe12,1,1,1,1,1,1,
+1,1,1,1,1,0x2a2a,0x2a30,0x2a36,1,1,0x2a3c,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0xfe0e,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xfe12,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x878,
+0x19ab,1,1,0x19b1,0x19b7,0xfe12,1,1,1,1,1,1,1,1,0xfc00,0xfc00,
+1,1,1,1,0x2a42,0x2a48,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0x884,1,0x19bd,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfc00,1,
+1,1,1,1,1,1,0x888,0x890,1,1,0x19c3,0x19c9,0x19cf,0xfe12,1,1,
+1,1,1,1,1,1,1,0xfc00,1,1,1,1,1,1,1,1,
+1,1,0x894,1,0x19d5,1,1,1,1,0xfe12,1,1,1,1,1,1,
+1,0xfea8,0xfcb6,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0xfe0e,1,1,0x898,0x19db,1,0xfc00,1,1,1,0x89c,0x19e1,0x19e7,1,0xdc4,0x19ef,
+1,0xfe12,1,1,1,1,1,1,1,0xfc00,0xfc00,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,0xfe12,0xfe12,1,0xfc00,1,1,1,1,1,
+1,1,0x8a8,0x8b0,1,1,0x19f7,0x19fd,0x1a03,0xfe12,1,1,1,1,1,1,
+1,1,1,0xfc00,1,1,1,1,1,1,1,1,1,1,0xfc12,1,
+1,1,1,0xfc00,1,1,1,1,1,1,1,1,1,0x8b4,0x1a09,1,
+0xdce,0x1a11,0x1a19,0xfc00,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,0xfece,0xfece,0xfe12,1,
+1,1,1,1,1,1,1,1,0xfed6,0xfed6,0xfed6,0xfed6,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0xfeec,0xfeec,1,1,1,1,1,1,1,1,1,1,
+0xfef4,0xfef4,0xfef4,0xfef4,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,0xffb8,0xffb8,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0xffb8,1,0xffb8,1,0xffb0,1,1,1,1,1,1,
+1,1,1,0x2a4f,1,1,1,1,1,1,1,1,1,0x2a55,1,1,
+1,1,0x2a5b,1,1,1,1,0x2a61,1,1,1,1,0x2a67,1,1,1,
+1,1,1,1,1,1,1,1,1,0x2a6d,1,1,1,1,1,1,
+1,0xff02,0xff04,0x3c40,0xff08,0x3c48,0x2a72,1,0x2a78,1,0xff04,0xff04,0xff04,0xff04,1,1,
+0xff04,0x3c50,0xffcc,0xffcc,0xfe12,1,0xffcc,0xffcc,1,1,1,1,1,1,1,1,
+1,1,1,0x2a7f,1,1,1,1,1,1,1,1,1,0x2a85,1,1,
+1,1,0x2a8b,1,1,1,1,0x2a91,1,1,1,1,0x2a97,1,1,1,
+1,1,1,1,1,1,1,1,1,0x2a9d,1,1,1,1,1,1,
+1,1,0xffb8,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,0x8c0,0x1a1f,1,
+1,1,1,1,1,1,0xfc00,1,1,1,1,1,1,1,1,0xfe0e,
+1,0xfe12,0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,0xffb8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0xfe12,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,1,
+1,1,1,1,1,1,1,1,1,0xffcc,1,1,1,1,1,1,
+1,1,1,1,1,0xffc8,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,0xffbc,0xffcc,0xffb8,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffb8,1,1,1,
+1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,1,1,0xffb8,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,
+0xffcc,0xffb8,1,1,1,1,1,1,1,0x8c4,0x1a25,0x8c8,0x1a2b,0x8cc,0x1a31,0x8d0,
+0x1a37,0x8d4,0x1a3d,1,1,0x8d8,0x1a43,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,0xfe0e,0xfc00,1,1,
+1,1,0x8dc,0x1a49,0x8e0,0x1a4f,0x8e4,0x8e8,0x1a55,0x1a5b,0x8ec,0x1a61,0xfe12,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,0xfe12,0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0xfe0e,1,1,1,1,1,
+1,1,1,1,1,1,0xfe12,0xfe12,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe0e,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0xffcc,0xffcc,0xffcc,1,0xfe02,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,
+0xffcc,1,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,1,1,1,1,0xffb8,1,1,
+1,1,1,1,0xffcc,1,1,1,0xffcc,0xffcc,1,1,1,1,1,1,
+0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffd4,0xffac,0xffb8,
+0xff94,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffd0,0xffc8,0xffc8,0xffb8,1,0xffcc,
+0xffd2,0xffb8,0xffcc,0xffb8,0x1a66,0x1a6c,0x1a72,0x1a78,0x1a7f,0x1a85,0x1a8b,0x1a91,0x1a99,0x1aa3,0x1aaa,0x1ab0,
+0x1ab6,0x1abc,0x1ac2,0x1ac8,0x1acf,0x1ad5,0x1ada,0x1ae0,0x1ae8,0x1af2,0x1afc,0x1b06,0x1b0e,0x1b14,0x1b1a,0x1b20,
+0x1b29,0x1b33,0x1b3b,0x1b41,0x1b46,0x1b4c,0x1b52,0x1b58,0x1b5e,0x1b64,0x1b6a,0x1b70,0x1b77,0x1b7d,0x1b82,0x1b88,
+0x1b8e,0x1b94,0x1b9c,0x1ba6,0x1bae,0x1bb4,0x1bba,0x1bc0,0x1bc6,0x1bcc,0xdd8,0xde2,0x1bd4,0x1bde,0x1be6,0x1bec,
+0x1bf2,0x1bf8,0x1bfe,0x1c04,0x1c0a,0x1c10,0x1c17,0x1c1d,0x1c22,0x1c28,0x1c2e,0x1c34,0x1c3a,0x1c40,0x1c46,0x1c4c,
+0x1c54,0x1c5e,0x1c68,0x1c72,0x1c7c,0x1c86,0x1c90,0x1c9a,0x1ca3,0x1ca9,0x1caf,0x1cb5,0x1cba,0x1cc0,0xdec,0xdf6,
+0x1cc8,0x1cd2,0x1cda,0x1ce0,0x1ce6,0x1cec,0xe00,0xe0a,0x1cf4,0x1cfe,0x1d08,0x1d12,0x1d1c,0x1d26,0x1d2e,0x1d34,
+0x1d3a,0x1d40,0x1d46,0x1d4c,0x1d52,0x1d58,0x1d5e,0x1d64,0x1d6a,0x1d70,0x1d76,0x1d7c,0x1d84,0x1d8e,0x1d98,0x1da2,
+0x1daa,0x1db0,0x1db7,0x1dbd,0x1dc2,0x1dc8,0x1dce,0x1dd4,0x1dda,0x1de0,0x1de6,0x1dec,0x1df3,0x1df9,0x1dff,0x1e05,
+0x1e0b,0x1e11,0x1e16,0x1e1c,0x1e22,0x1e28,0x1e2f,0x1e35,0x1e3b,0x1e41,0x1e46,0x1e4c,0x1e52,0x1e58,1,0x1e5f,
+1,1,1,1,0xe14,0xe22,0x1e64,0x1e6a,0x1e72,0x1e7c,0x1e86,0x1e90,0x1e9a,0x1ea4,0x1eae,0x1eb8,
+0x1ec2,0x1ecc,0x1ed6,0x1ee0,0x1eea,0x1ef4,0x1efe,0x1f08,0x1f12,0x1f1c,0x1f26,0x1f30,0xe30,0xe3a,0x1f38,0x1f3e,
+0x1f44,0x1f4a,0x1f52,0x1f5c,0x1f66,0x1f70,0x1f7a,0x1f84,0x1f8e,0x1f98,0x1fa2,0x1fac,0x1fb4,0x1fba,0x1fc0,0x1fc6,
+0xe44,0xe4e,0x1fcc,0x1fd2,0x1fda,0x1fe4,0x1fee,0x1ff8,0x2002,0x200c,0x2016,0x2020,0x202a,0x2034,0x203e,0x2048,
+0x2052,0x205c,0x2066,0x2070,0x207a,0x2084,0x208e,0x2098,0x20a0,0x20a6,0x20ac,0x20b2,0x20ba,0x20c4,0x20ce,0x20d8,
+0x20e2,0x20ec,0x20f6,0x2100,0x210a,0x2114,0x211c,0x2122,0x2129,0x212f,0x2134,0x213a,0x2140,0x2146,1,1,
+1,1,1,1,0xe58,0xe6e,0xe86,0xe94,0xea2,0xeb0,0xebe,0xecc,0xed8,0xeee,0xf06,0xf14,
+0xf22,0xf30,0xf3e,0xf4c,0xf58,0xf66,0x214f,0x2159,0x2163,0x216d,1,1,0xf74,0xf82,0x2177,0x2181,
+0x218b,0x2195,1,1,0xf90,0xfa6,0xfbe,0xfcc,0xfda,0xfe8,0xff6,0x1004,0x1010,0x1026,0x103e,0x104c,
+0x105a,0x1068,0x1076,0x1084,0x1090,0x10a2,0x219f,0x21a9,0x21b3,0x21bd,0x21c7,0x21d1,0x10b4,0x10c6,0x21db,0x21e5,
+0x21ef,0x21f9,0x2203,0x220d,0x10d8,0x10e6,0x2217,0x2221,0x222b,0x2235,1,1,0x10f4,0x1102,0x223f,0x2249,
+0x2253,0x225d,1,1,0x1110,0x1122,0x2267,0x2271,0x227b,0x2285,0x228f,0x2299,1,0x1134,1,0x22a3,
+1,0x22ad,1,0x22b7,0x1146,0x115c,0x1174,0x1182,0x1190,0x119e,0x11ac,0x11ba,0x11c6,0x11dc,0x11f4,0x1202,
+0x1210,0x121e,0x122c,0x123a,0x1246,0x3b8e,0x22bf,0x3b96,0x1250,0x3b9e,0x22c5,0x3ba6,0x22cb,0x3bae,0x22d1,0x3bb6,
+0x125a,0x3bbe,1,1,0x22d8,0x22e2,0x22f1,0x2301,0x2311,0x2321,0x2331,0x2341,0x234c,0x2356,0x2365,0x2375,
+0x2385,0x2395,0x23a5,0x23b5,0x23c0,0x23ca,0x23d9,0x23e9,0x23f9,0x2409,0x2419,0x2429,0x2434,0x243e,0x244d,0x245d,
+0x246d,0x247d,0x248d,0x249d,0x24a8,0x24b2,0x24c1,0x24d1,0x24e1,0x24f1,0x2501,0x2511,0x251c,0x2526,0x2535,0x2545,
+0x2555,0x2565,0x2575,0x2585,0x258f,0x2595,0x259d,0x25a4,0x25ad,1,0x1264,0x25b7,0x25bf,0x25c5,0x25cb,0x3bc6,
+0x25d0,1,0x2aa2,0x8f0,1,0x25d7,0x25df,0x25e6,0x25ef,1,0x126e,0x25f9,0x2601,0x3bce,0x2607,0x3bd6,
+0x260c,0x2613,0x2619,0x261f,0x2625,0x262b,0x2633,0x3be0,1,1,0x263b,0x2643,0x264b,0x2651,0x2657,0x3bea,
+1,0x265d,0x2663,0x2669,0x266f,0x2675,0x267d,0x3bf4,0x2685,0x268b,0x2691,0x2699,0x26a1,0x26a7,0x26ad,0x3bfe,
+0x26b3,0x26b9,0x3c06,0x2aa7,1,1,0x26c1,0x26c8,0x26d1,1,0x1278,0x26db,0x26e3,0x3c0e,0x26e9,0x3c16,
+0x26ee,0x2aab,0x8fc,1,0xfa09,0xfa09,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0xffcc,0xffcc,0xfe02,0xfe02,0xffcc,0xffcc,0xffcc,0xffcc,0xfe02,0xfe02,0xfe02,0xffcc,
+0xffcc,1,1,1,1,0xffcc,1,1,1,0xfe02,0xfe02,0xffcc,0xffb8,0xffcc,0xfe02,0xfe02,
+0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0x2aae,1,1,1,0x2ab2,0x3c1e,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0x908,1,0x90c,1,0x910,1,1,1,1,1,0x26f5,0x26fb,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0x2701,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,0x2707,0x270d,0x2713,
+0x914,1,0x918,1,0x91c,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,0x920,0x2719,1,1,1,0x924,0x271f,1,0x928,0x2725,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,0x92c,0x272b,0x930,0x2731,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,0x934,1,1,1,
+1,0x2737,1,0x938,0x273d,0x93c,1,0x2743,0x940,0x2749,1,1,1,0x944,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0x274f,0x948,0x2755,1,0x94c,0x950,1,1,1,1,1,1,1,0x275b,0x2761,0x2767,
+0x276d,0x2773,0x954,0x958,0x2779,0x277f,0x95c,0x960,0x2785,0x278b,0x964,0x968,0x96c,0x970,1,1,
+0x2791,0x2797,0x974,0x978,0x279d,0x27a3,0x97c,0x980,0x27a9,0x27af,1,1,1,1,1,1,
+1,0x984,0x988,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,0x98c,1,1,1,1,1,0x990,0x994,1,0x998,0x27b5,0x27bb,0x27c1,0x27c7,
+1,1,0x99c,0x9a0,0x9a4,0x9a8,1,1,1,1,1,1,1,1,1,1,
+0x27cd,0x27d3,0x27d9,0x27df,1,1,1,1,1,1,0x27e5,0x27eb,0x27f1,0x27f7,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,0x2ab7,0x2abb,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0x2abf,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,0xfe12,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,
+1,1,0xffb4,0xffc8,0xffd0,0xffbc,0xffc0,0xffc0,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0x9ac,1,1,1,1,0x9b0,
+0x27fd,0x9b4,0x2803,0x9b8,0x2809,0x9bc,0x280f,0x9c0,0x2815,0x9c4,0x281b,0x9c8,0x2821,0x9cc,0x2827,0x9d0,
+0x282d,0x9d4,0x2833,0x9d8,0x2839,0x9dc,0x283f,1,0x9e0,0x2845,0x9e4,0x284b,0x9e8,0x2851,1,1,
+1,1,1,0x9ec,0x2857,0x285d,0x9f4,0x2863,0x2869,0x9fc,0x286f,0x2875,0xa04,0x287b,0x2881,0xa0c,
+0x2887,0x288d,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0x2893,1,1,1,1,0xfc10,0xfc10,1,
+1,0xa14,0x2899,1,1,1,1,1,1,1,0xa18,1,1,1,1,0xa1c,
+0x289f,0xa20,0x28a5,0xa24,0x28ab,0xa28,0x28b1,0xa2c,0x28b7,0xa30,0x28bd,0xa34,0x28c3,0xa38,0x28c9,0xa3c,
+0x28cf,0xa40,0x28d5,0xa44,0x28db,0xa48,0x28e1,1,0xa4c,0x28e7,0xa50,0x28ed,0xa54,0x28f3,1,1,
+1,1,1,0xa58,0x28f9,0x28ff,0xa60,0x2905,0x290b,0xa68,0x2911,0x2917,0xa70,0x291d,0x2923,0xa78,
+0x2929,0x292f,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,0xa80,0xa84,0xa88,0xa8c,1,0x2935,1,1,0x293b,0x2941,0x2947,0x294d,1,
+1,0xa90,0x2953,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,0xffcc,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xffb8,
+0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,
+1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0xffcc,1,0xffcc,0xffcc,0xffb8,1,1,0xffcc,0xffcc,1,1,1,
+1,1,0xffcc,0xffcc,1,0xffcc,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,
+0x2ac5,0x2ac9,0x2acd,0x2ad1,0x2ad5,0x2ad9,0x2add,0x2ae1,0x2ae1,0x2ae5,0x2ae9,0x2aed,0x2af1,0x2af5,0x2af9,0x2afd,
+0x2b01,0x2b05,0x2b09,0x2b0d,0x2b11,0x2b15,0x2b19,0x2b1d,0x2b21,0x2b25,0x2b29,0x2b2d,0x2b31,0x2b35,0x2b39,0x2b3d,
+0x2b41,0x2b45,0x2b49,0x2b4d,0x2b51,0x2b55,0x2b59,0x2b5d,0x2b61,0x2b65,0x2b69,0x2b6d,0x2b71,0x2b75,0x2b79,0x2b7d,
+0x2b81,0x2b85,0x2b89,0x2b8d,0x2b91,0x2b95,0x2b99,0x2b9d,0x2ba1,0x2ba5,0x2ba9,0x2bad,0x2bb1,0x2bb5,0x2bb9,0x2bbd,
+0x2bc1,0x2bc5,0x2bc9,0x2bcd,0x2bd1,0x2bd5,0x2bd9,0x2bdd,0x2be1,0x2be5,0x2be9,0x2bed,0x2bf1,0x2bf5,0x2bf9,0x2bfd,
+0x2c01,0x2c05,0x2c09,0x2c0d,0x2c11,0x2c15,0x2c19,0x2c1d,0x2c21,0x2c25,0x2c29,0x2c2d,0x2b11,0x2c31,0x2c35,0x2c39,
+0x2c3d,0x2c41,0x2c45,0x2c49,0x2c4d,0x2c51,0x2c55,0x2c59,0x2c5d,0x2c61,0x2c65,0x2c69,0x2c6d,0x2c71,0x2c75,0x2c79,
+0x2c7d,0x2c81,0x2c85,0x2c89,0x2c8d,0x2c91,0x2c95,0x2c99,0x2c9d,0x2ca1,0x2ca5,0x2ca9,0x2cad,0x2cb1,0x2cb5,0x2cb9,
+0x2cbd,0x2cc1,0x2cc5,0x2cc9,0x2ccd,0x2cd1,0x2cd5,0x2cd9,0x2cdd,0x2ce1,0x2ce5,0x2ce9,0x2ced,0x2cf1,0x2cf5,0x2cf9,
+0x2cfd,0x2d01,0x2d05,0x2d09,0x2d0d,0x2d11,0x2d15,0x2d19,0x2d1d,0x2d21,0x2d25,0x2d29,0x2d2d,0x2d31,0x2d35,0x2d39,
+0x2d3d,0x2c79,0x2d41,0x2d45,0x2d49,0x2d4d,0x2d51,0x2d55,0x2d59,0x2d5d,0x2c39,0x2d61,0x2d65,0x2d69,0x2d6d,0x2d71,
+0x2d75,0x2d79,0x2d7d,0x2d81,0x2d85,0x2d89,0x2d8d,0x2d91,0x2d95,0x2d99,0x2d9d,0x2da1,0x2da5,0x2da9,0x2dad,0x2b11,
+0x2db1,0x2db5,0x2db9,0x2dbd,0x2dc1,0x2dc5,0x2dc9,0x2dcd,0x2dd1,0x2dd5,0x2dd9,0x2ddd,0x2de1,0x2de5,0x2de9,0x2ded,
+0x2df1,0x2df5,0x2df9,0x2dfd,0x2e01,0x2e05,0x2e09,0x2e0d,0x2e11,0x2e15,0x2e19,0x2c41,0x2e1d,0x2e21,0x2e25,0x2e29,
+0x2e2d,0x2e31,0x2e35,0x2e39,0x2e3d,0x2e41,0x2e45,0x2e49,0x2e4d,0x2e51,0x2e55,0x2e59,0x2e5d,0x2e61,0x2e65,0x2e69,
+0x2e6d,0x2e71,0x2e75,0x2e79,0x2e7d,0x2e81,0x2e85,0x2e89,0x2e8d,0x2e91,0x2e95,0x2e99,0x2e9d,0x2ea1,0x2ea5,0x2ea9,
+0x2ead,0x2eb1,0x2eb5,0x2eb9,0x2ebd,0x2ec1,0x2ec5,0x2ec9,0x2ecd,0x2ed1,0x2ed5,0x2ed9,0x2edd,0x2ee1,1,1,
+0x2ee5,1,0x2ee9,1,1,0x2eed,0x2ef1,0x2ef5,0x2ef9,0x2efd,0x2f01,0x2f05,0x2f09,0x2f0d,0x2f11,1,
+0x2f15,1,0x2f19,1,1,0x2f1d,0x2f21,1,1,1,0x2f25,0x2f29,0x2f2d,0x2f31,0x2f35,0x2f39,
+0x2f3d,0x2f41,0x2f45,0x2f49,0x2f4d,0x2f51,0x2f55,0x2f59,0x2f5d,0x2f61,0x2f65,0x2f69,0x2f6d,0x2f71,0x2f75,0x2f79,
+0x2f7d,0x2f81,0x2f85,0x2f89,0x2f8d,0x2f91,0x2f95,0x2f99,0x2f9d,0x2fa1,0x2fa5,0x2fa9,0x2fad,0x2fb1,0x2fb5,0x2fb9,
+0x2fbd,0x2fc1,0x2fc5,0x2fc9,0x2fcd,0x2fd1,0x2fd5,0x2d15,0x2fd9,0x2fdd,0x2fe1,0x2fe5,0x2fe9,0x2fed,0x2fed,0x2ff1,
+0x2ff5,0x2ff9,0x2ffd,0x3001,0x3005,0x3009,0x300d,0x2f1d,0x3011,0x3015,0x3019,0x301d,0x3021,0x3027,1,1,
+0x302b,0x302f,0x3033,0x3037,0x303b,0x303f,0x3043,0x3047,0x2f55,0x304b,0x304f,0x3053,0x2ee5,0x3057,0x305b,0x305f,
+0x3063,0x3067,0x306b,0x306f,0x3073,0x3077,0x307b,0x307f,0x3083,0x2f79,0x3087,0x2f7d,0x308b,0x308f,0x3093,0x3097,
+0x309b,0x2ee9,0x2b65,0x309f,0x30a3,0x30a7,0x2c7d,0x2dd9,0x30ab,0x30af,0x2f99,0x30b3,0x2f9d,0x30b7,0x30bb,0x30bf,
+0x2ef1,0x30c3,0x30c7,0x30cb,0x30cf,0x30d3,0x2ef5,0x30d7,0x30db,0x30df,0x30e3,0x30e7,0x30eb,0x2fd5,0x30ef,0x30f3,
+0x2d15,0x30f7,0x2fe5,0x30fb,0x30ff,0x3103,0x3107,0x310b,0x2ff9,0x310f,0x2f19,0x3113,0x2ffd,0x2c31,0x3117,0x3001,
+0x311b,0x3009,0x311f,0x3123,0x3127,0x312b,0x312f,0x3011,0x2f09,0x3133,0x3015,0x3137,0x3019,0x313b,0x2ae1,0x313f,
+0x3145,0x314b,0x3151,0x3155,0x3159,0x315d,0x3163,0x3169,0x316f,0x3173,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0x3176,0xfe34,0x317c,1,1,1,1,
+1,1,1,1,1,1,0x3182,0x3188,0x3190,0x319a,0x31a2,0x31a8,0x31ae,0x31b4,0x31ba,0x31c0,
+0x31c6,0x31cc,0x31d2,1,0x31d8,0x31de,0x31e4,0x31ea,0x31f0,1,0x31f6,1,0x31fc,0x3202,1,0x3208,
+0x320e,1,0x3214,0x321a,0x3220,0x3226,0x322c,0x3232,0x3238,0x323e,0x3244,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xffb8,1,1,0xffb8,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,0xffb8,1,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xfe02,0xffb8,1,
+1,1,1,0xfe12,1,1,1,1,1,0xffcc,0xffb8,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0xa94,0x2959,0xa9a,0x2963,1,1,1,1,1,1,1,
+1,0xaa0,1,1,1,1,1,0x296d,1,1,1,1,1,1,1,1,
+1,1,1,1,1,0xfe12,0xfc0e,1,1,1,1,1,0xffcc,0xffcc,0xffcc,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfc00,
+1,1,1,1,1,1,0x2977,0x2981,1,0xaa6,0xaac,0xfe12,0xfe12,1,1,1,
+1,1,1,1,1,1,1,1,0xfe12,1,1,1,1,1,1,1,
+1,1,0xfe0e,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,0xfe12,0xfe0e,1,1,1,1,1,
+1,1,1,1,1,0xfe0e,0xfe12,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xab2,
+1,1,1,0x298b,0x2995,0xfe12,1,1,1,1,1,1,1,1,1,0xfc00,
+1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0xfe12,1,1,1,0xfe0e,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0xfc00,1,1,1,1,1,1,1,1,0xabe,0xfc00,0x299f,
+0x29a9,0xfc00,0x29b3,1,1,1,0xfe12,0xfe0e,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,0xfc00,1,1,1,1,1,1,1,1,
+0xad0,0xad6,0x29bd,0x29c7,1,1,1,0xfe12,0xfe0e,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0xfe12,0xfe0e,1,1,1,1,
+1,1,1,1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,0xfe12,1,1,1,1,1,1,1,1,0xfe0e,1,0xfe12,0xfe12,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0xfe02,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,0x324a,0x3254,0x3268,0x3280,0x3298,0x32b0,0x32c8,0xffb0,0xffb0,0xfe02,
+0xfe02,0xfe02,1,1,1,0xffc4,0xffb0,0xffb0,0xffb0,0xffb0,0xffb0,1,1,1,1,1,
+1,1,1,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,1,1,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,1,1,
+1,1,1,1,1,1,1,1,1,1,1,0x32d6,0x32e0,0x32f4,0x330c,0x3324,
+0x333c,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,
+0xffcc,0xffcc,1,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,
+0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xfe0e,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,0x334b,0x334f,0x3353,0x3357,
+0x335d,0x2f3d,0x3361,0x3365,0x3369,0x336d,0x2f41,0x3371,0x3375,0x3379,0x2f45,0x337f,0x3383,0x3387,0x338b,0x3391,
+0x3395,0x3399,0x339d,0x33a3,0x33a7,0x33ab,0x33af,0x302f,0x33b3,0x33b9,0x33bd,0x33c1,0x33c5,0x33c9,0x33cd,0x33d1,
+0x33d5,0x3043,0x2f49,0x2f4d,0x3047,0x33d9,0x33dd,0x2c49,0x33e1,0x2f51,0x33e5,0x33e9,0x33ed,0x33f1,0x33f1,0x33f1,
+0x33f5,0x33fb,0x33ff,0x3403,0x3407,0x340d,0x3411,0x3415,0x3419,0x341d,0x3421,0x3425,0x3429,0x342d,0x3431,0x3435,
+0x3439,0x343d,0x343d,0x304f,0x3441,0x3445,0x3449,0x344d,0x2f59,0x3451,0x3455,0x3459,0x2ead,0x345d,0x3461,0x3465,
+0x3469,0x346d,0x3471,0x3475,0x3479,0x347d,0x3483,0x3487,0x348b,0x348f,0x3493,0x3497,0x349b,0x34a1,0x34a7,0x34ab,
+0x34af,0x34b3,0x34b7,0x34bb,0x34bf,0x34c3,0x34c7,0x34c7,0x34cb,0x34d1,0x34d5,0x2c39,0x34d9,0x34dd,0x34e3,0x34e7,
+0x34eb,0x34ef,0x34f3,0x34f7,0x2f6d,0x34fb,0x34ff,0x3503,0x3509,0x350d,0x3513,0x3517,0x351b,0x351f,0x3523,0x3527,
+0x352b,0x352f,0x3533,0x3537,0x353b,0x353f,0x3545,0x3549,0x354d,0x3551,0x2b61,0x3555,0x355b,0x355f,0x355f,0x3565,
+0x3569,0x3569,0x356d,0x3571,0x3577,0x357d,0x3581,0x3585,0x3589,0x358d,0x3591,0x3595,0x3599,0x359d,0x35a1,0x2f71,
+0x35a5,0x35ab,0x35af,0x35b3,0x307f,0x35b3,0x35b7,0x2f79,0x35bb,0x35bf,0x35c3,0x35c7,0x2f7d,0x2af5,0x35cb,0x35cf,
+0x35d3,0x35d7,0x35db,0x35df,0x35e3,0x35e9,0x35ed,0x35f1,0x35f5,0x35f9,0x35fd,0x3603,0x3607,0x360b,0x360f,0x3613,
+0x3617,0x361b,0x361f,0x3623,0x2f81,0x3627,0x362b,0x3631,0x3635,0x3639,0x363d,0x2f89,0x3641,0x3645,0x3649,0x364d,
+0x3651,0x3655,0x3659,0x365d,0x2b65,0x309f,0x3661,0x3665,0x3669,0x366d,0x3673,0x3677,0x367b,0x367f,0x2f8d,0x3683,
+0x3689,0x368d,0x3691,0x3151,0x3695,0x3699,0x369d,0x36a1,0x36a5,0x36ab,0x36af,0x36b3,0x36b7,0x36bd,0x36c1,0x36c5,
+0x36c9,0x2c7d,0x36cd,0x36d1,0x36d7,0x36dd,0x36e3,0x36e7,0x36ed,0x36f1,0x36f5,0x36f9,0x36fd,0x2f91,0x2dd9,0x3701,
+0x3705,0x3709,0x370d,0x3713,0x3717,0x371b,0x371f,0x30af,0x3723,0x3727,0x372d,0x3731,0x3735,0x373b,0x3741,0x3745,
+0x30b3,0x3749,0x374d,0x3751,0x3755,0x3759,0x375d,0x3761,0x3767,0x376b,0x3771,0x3775,0x377b,0x30bb,0x377f,0x3783,
+0x3789,0x378d,0x3791,0x3797,0x379d,0x37a1,0x37a5,0x37a9,0x37ad,0x37ad,0x37b1,0x37b5,0x30c3,0x37b9,0x37bd,0x37c1,
+0x37c5,0x37c9,0x37cf,0x37d3,0x2c45,0x37d9,0x37df,0x37e3,0x37e9,0x37ef,0x37f5,0x37f9,0x30db,0x37fd,0x3803,0x3809,
+0x380f,0x3815,0x3819,0x3819,0x30df,0x3159,0x381d,0x3821,0x3825,0x3829,0x382f,0x2bad,0x30e7,0x3833,0x3837,0x2fbd,
+0x383d,0x3843,0x2f05,0x3849,0x384d,0x2fcd,0x3851,0x3855,0x3859,0x385f,0x385f,0x3865,0x3869,0x386d,0x3873,0x3877,
+0x387b,0x387f,0x3885,0x3889,0x388d,0x3891,0x3895,0x3899,0x389f,0x38a3,0x38a7,0x38ab,0x38af,0x38b3,0x38b7,0x38bd,
+0x38c3,0x38c7,0x38cd,0x38d1,0x38d7,0x38db,0x2fe5,0x38df,0x38e5,0x38eb,0x38ef,0x38f5,0x38f9,0x38ff,0x3903,0x3907,
+0x390b,0x390f,0x3913,0x3917,0x391d,0x3923,0x3929,0x3565,0x392f,0x3933,0x3937,0x393b,0x393f,0x3943,0x3947,0x394b,
+0x394f,0x3953,0x3957,0x395b,0x2c8d,0x3961,0x3965,0x3969,0x396d,0x3971,0x3975,0x2ff1,0x3979,0x397d,0x3981,0x3985,
+0x3989,0x398f,0x3995,0x399b,0x399f,0x39a3,0x39a7,0x39ab,0x39b1,0x39b5,0x39bb,0x39bf,0x39c3,0x39c9,0x39cf,0x39d3,
+0x2b99,0x39d7,0x39db,0x39df,0x39e3,0x39e7,0x39eb,0x3103,0x39ef,0x39f3,0x39f7,0x39fb,0x39ff,0x3a03,0x3a07,0x3a0b,
+0x3a0f,0x3a13,0x3a19,0x3a1d,0x3a21,0x3a25,0x3a29,0x3a2d,0x3a33,0x3a39,0x3a3d,0x3a41,0x3117,0x311b,0x3a45,0x3a49,
+0x3a4f,0x3a53,0x3a57,0x3a5b,0x3a5f,0x3a65,0x3a6b,0x3a6f,0x3a73,0x3a77,0x3a7d,0x311f,0x3a81,0x3a87,0x3a8d,0x3a91,
+0x3a95,0x3a99,0x3a9f,0x3aa3,0x3aa7,0x3aab,0x3aaf,0x3ab3,0x3ab7,0x3abb,0x3ac1,0x3ac5,0x3ac9,0x3acd,0x3ad3,0x3ad7,
+0x3adb,0x3adf,0x3ae3,0x3ae9,0x3aef,0x3af3,0x3af7,0x3afb,0x3b01,0x3b05,0x3137,0x3137,0x3b0b,0x3b0f,0x3b15,0x3b19,
+0x3b1d,0x3b21,0x3b25,0x3b29,0x3b2d,0x3b31,0x313b,0x3b37,0x3b3b,0x3b3f,0x3b43,0x3b47,0x3b4b,0x3b51,0x3b55,0x3b5b,
+0x3b61,0x3b67,0x3b6b,0x3b6f,0x3b73,0x3b77,0x3b7b,0x3b7f,0x3b83,0x3b87,1,1,2,2,2,2,
+2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe00,0xfe00,0xfe00,
+0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,
+0xfe00,0xfe00,1,1,1,1,1,1,1,1,1,1,0xfe00,0xfe00,0xfe00,0xfe00,
+0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,
+0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0xadc,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,
+0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,
+0xadc,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,
+0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,0x1283,0x1283,0x1283,0x1283,0xadc,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,
+0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,0x1283,
+0x1283,0x1283,0x1283,0x1283,0x3c54,1,0x3c54,1,0x3c54,0x3c54,0x3c54,0x3c54,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x3c54,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x3c54,
+1,1,1,1,0x3c54,1,1,1,0x3c54,1,0x3c54,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,0x3b87,1,1,1,1,1
};
-static const uint16_t norm2_nfc_data_extraData[7722]={
+static const uint16_t norm2_nfc_data_extraData[7724]={
0xffff,0xffff,0x8670,0x44dc,0x8670,0x44c0,0x8670,0x44de,0x600,0x180,0x602,0x182,0x604,0x185,0x606,0x186,
0x608,0x200,0x60c,0x205,0x60e,0x44d,0x610,0x189,0x612,0x3d44,0x614,0x18b,0x618,0x39a,0x61e,0x400,
0x622,0x404,0x646,0x3d41,0x64a,0x3c00,0x8650,0x208,0x60e,0x3c04,0x646,0x3c08,0x8662,0x3c0c,0x602,0x20c,
@@ -712,407 +720,407 @@
0x6132,0x61a6,0xe134,0x61a8,0x6132,0x61ac,0xe134,0x61ae,0x6132,0x61b2,0xe134,0x61b4,0x6132,0x61b8,0xe134,0x61ba,
0xe132,0x61ee,0xe132,0x61f0,0xe132,0x61f2,0xe132,0x61f4,0xe132,0x61fc,0xb489,0x2e82,0x2134,0xb489,0x2e82,0x2138,
0xb489,0x2e82,0x2156,0xb489,0x49c2,0x225c,0xb489,0x49c2,0x225e,0x3489,0xcf82,0x2696,0xb489,0xd5c2,0x2698,0x348b,
-0x2c02,0x2978,0x348b,0x2e82,0x2976,0xb48b,0x2f42,0x297c,0xb48b,0x6bc2,0x2b74,0xb48b,0x6bc2,0x2b76,0,0xe622,
-0x41,0x302,0x600,0x3d4c,0x602,0x3d48,0x606,0x3d54,0x8612,0x3d50,0xe622,0x41,0x308,0x8608,0x3bc,0xe622,
-0x41,0x30a,0x8602,0x3f4,0xca22,0x43,0x327,0x8602,0x3c10,0xe622,0x45,0x302,0x600,0x3d80,0x602,0x3d7c,
-0x606,0x3d88,0x8612,0x3d84,0xe622,0x49,0x308,0x8602,0x3c5c,0xe622,0x4f,0x302,0x600,0x3da4,0x602,0x3da0,
-0x606,0x3dac,0x8612,0x3da8,0xe622,0x4f,0x303,0x602,0x3c98,0x608,0x458,0x8610,0x3c9c,0xe622,0x4f,0x308,
-0x8608,0x454,0xe622,0x55,0x308,0x600,0x3b6,0x602,0x3ae,0x608,0x3aa,0x8618,0x3b2,0xe622,0x61,0x302,
-0x600,0x3d4e,0x602,0x3d4a,0x606,0x3d56,0x8612,0x3d52,0xe622,0x61,0x308,0x8608,0x3be,0xe622,0x61,0x30a,
-0x8602,0x3f6,0xca22,0x63,0x327,0x8602,0x3c12,0xe622,0x65,0x302,0x600,0x3d82,0x602,0x3d7e,0x606,0x3d8a,
-0x8612,0x3d86,0xe622,0x69,0x308,0x8602,0x3c5e,0xe622,0x6f,0x302,0x600,0x3da6,0x602,0x3da2,0x606,0x3dae,
-0x8612,0x3daa,0xe622,0x6f,0x303,0x602,0x3c9a,0x608,0x45a,0x8610,0x3c9e,0xe622,0x6f,0x308,0x8608,0x456,
-0xe622,0x75,0x308,0x600,0x3b8,0x602,0x3b0,0x608,0x3ac,0x8618,0x3b4,0xe622,0x41,0x306,0x600,0x3d60,
-0x602,0x3d5c,0x606,0x3d68,0x8612,0x3d64,0xe622,0x61,0x306,0x600,0x3d62,0x602,0x3d5e,0x606,0x3d6a,0x8612,
-0x3d66,0xe622,0x45,0x304,0x600,0x3c28,0x8602,0x3c2c,0xe622,0x65,0x304,0x600,0x3c2a,0x8602,0x3c2e,0xe622,
-0x4f,0x304,0x600,0x3ca0,0x8602,0x3ca4,0xe622,0x6f,0x304,0x600,0x3ca2,0x8602,0x3ca6,0xe622,0x53,0x301,
-0x860e,0x3cc8,0xe622,0x73,0x301,0x860e,0x3cca,0xe622,0x53,0x30c,0x860e,0x3ccc,0xe622,0x73,0x30c,0x860e,
-0x3cce,0xe622,0x55,0x303,0x8602,0x3cf0,0xe622,0x75,0x303,0x8602,0x3cf2,0xe622,0x55,0x304,0x8610,0x3cf4,
-0xe622,0x75,0x304,0x8610,0x3cf6,0xd822,0x4f,0x31b,0x600,0x3db8,0x602,0x3db4,0x606,0x3dc0,0x612,0x3dbc,
-0x8646,0x3dc4,0xd822,0x6f,0x31b,0x600,0x3dba,0x602,0x3db6,0x606,0x3dc2,0x612,0x3dbe,0x8646,0x3dc6,0xd822,
-0x55,0x31b,0x600,0x3dd4,0x602,0x3dd0,0x606,0x3ddc,0x612,0x3dd8,0x8646,0x3de0,0xd822,0x75,0x31b,0x600,
-0x3dd6,0x602,0x3dd2,0x606,0x3dde,0x612,0x3dda,0x8646,0x3de2,0xca22,0x4f,0x328,0x8608,0x3d8,0xca22,0x6f,
-0x328,0x8608,0x3da,0xe622,0x41,0x307,0x8608,0x3c0,0xe622,0x61,0x307,0x8608,0x3c2,0xca22,0x45,0x327,
-0x860c,0x3c38,0xca22,0x65,0x327,0x860c,0x3c3a,0xe622,0x4f,0x307,0x8608,0x460,0xe622,0x6f,0x307,0x8608,
-0x462,0xe622,0x3b1,0x301,0x868a,0x3f68,0xe622,0x3b7,0x301,0x868a,0x3f88,0xe622,0x3b9,0x308,0x600,0x3fa4,
-0x602,0x720,0x8684,0x3fae,0xe622,0x3c5,0x308,0x600,0x3fc4,0x602,0x760,0x8684,0x3fce,0xe622,0x3c9,0x301,
-0x868a,0x3fe8,0x22,0xcc6,0xcc2,0x99aa,0x1996,0x22,0xdd9,0xdcf,0x9b94,0x1bba,0xdc22,0x4c,0x323,0x8608,
-0x3c70,0xdc22,0x6c,0x323,0x8608,0x3c72,0xdc22,0x52,0x323,0x8608,0x3cb8,0xdc22,0x72,0x323,0x8608,0x3cba,
-0xdc22,0x53,0x323,0x860e,0x3cd0,0xdc22,0x73,0x323,0x860e,0x3cd2,0xdc22,0x41,0x323,0x604,0x3d58,0x860c,
-0x3d6c,0xdc22,0x61,0x323,0x604,0x3d5a,0x860c,0x3d6e,0xdc22,0x45,0x323,0x8604,0x3d8c,0xdc22,0x65,0x323,
-0x8604,0x3d8e,0xdc22,0x4f,0x323,0x8604,0x3db0,0xdc22,0x6f,0x323,0x8604,0x3db2,0xe622,0x3b1,0x313,0x600,
-0x3e05,0x602,0x3e09,0x684,0x3e0d,0x868a,0x3f00,0xe622,0x3b1,0x314,0x600,0x3e07,0x602,0x3e0b,0x684,0x3e0f,
-0x868a,0x3f02,0x1f00,0x